From 9ff4ed286f7a060fa77475c6e846546336e0e279 Mon Sep 17 00:00:00 2001 From: MarkLee131 Date: Sat, 4 Apr 2026 20:57:03 +0800 Subject: [PATCH 001/124] 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 000000000000..8856d419bce0 --- /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 788cd5429397..e2957f6b02f6 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 442873b54a44..fb87c6878235 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 void sendUserFileGood3(Socket sock, String user) throws Exception { } } + 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 002/124] 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 000000000000..15fc811360b5 --- /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 6733219a8d5f..efbc22b0b29a 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 54f1e9f8a5aa..ad3715ec7e25 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 6521f7e2df79..759228ae3ec9 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 @@ void test(String password, String authToken, String username, String nullToken, 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 003/124] 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 efbc22b0b29a..a4adcd7c341f 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 ad3715ec7e25..4a5ed058b50d 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 759228ae3ec9..5c9826ba2cc9 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 @@ void testFalsePositiveExclusions( 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 @@ void testFalsePositiveExclusions( 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 93a594e9c0974f0298a9206277610c23d63d4ab7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 5 Mar 2026 13:13:58 +0100 Subject: [PATCH 004/124] 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 4ec8ff8450ac..cc9601ea832e 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 ac7c5b59cfe2..fc02f2469d1d 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 005/124] 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 cc9601ea832e..92d10f3d274a 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 fc02f2469d1d..77192721cf13 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 006/124] 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 92d10f3d274a..20d622e91c83 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 77192721cf13..8df466678cd6 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 007/124] 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 611b578b859a..1b3b32bf9886 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 0d0ed6819698..73a461d0609b 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 008/124] 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 20d622e91c83..72353de39fcc 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 8df466678cd6..7cd169fa5f7e 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 009/124] 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 7cd169fa5f7e..a9f3c44fcc40 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 010/124] 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 7075626aa3bd..f1a7d2cebdcb 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 bbe310fe69e5..266526a64f5f 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 bf6a97728574..65937c82e675 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 73a461d0609b..1a27a3ed878d 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 438174fe2970..533fc2135317 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 aafe14402c7f..a32abfe6d689 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 6c1eb8c06eb9..87003abf2efb 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 3d690ee1ac46..dad41f38d1b0 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 e8180201b9a8..d516e3aa1935 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 6f6f38bd199f..f89e42744f63 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 be183815c715..158ea697edfd 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 ae530b2d451a..e4296a151bcc 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 f4d24fdb5101..a19364ba04f8 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 83593a5df36b..ad390f5fe5df 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 171f2d2f59e4..b87d31985ca2 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 150ae78ae090..106993837bed 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 0831eb561997..7f93312521a9 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 f639b060ac17..8b9c4f616003 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 5c11a77f30df..03ca6377722e 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 f1f23ebf5e0d..ed7190e69ff3 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 c350c8f37554..d36ac01109ff 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 f6f9b26f1cdd..fdb9da4ca765 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 61c801819246..0ec6939dfb22 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 02b65c0d3e2c..de0e75f53130 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 1037ad321691..408e626cb8c3 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 f519f9a14e83..9061f164c895 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 fe2f90be4a7d..ae01a2af0954 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 33f0095c8379..918e2b05a264 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 696f747b9254..c0841f56dff9 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 100f05e562a8..73d83fba5c68 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 f6aaf07485ea..19037a80e6c8 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 87c26e322591..abb84e3741c3 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 f212e48f1c4f..b071b33164e0 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 baa59bc5b677..2c4d1f319d45 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 1a90e6eb1fb6..c7826e5bcaa4 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 f596ac41629a..020863c588d7 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 011/124] 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 a9f3c44fcc40..03ee8988b381 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 012/124] 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 533fc2135317..c4856ece8348 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 87003abf2efb..df94d9eab7a9 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 dad41f38d1b0..fa4a7fa50f8f 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 d516e3aa1935..ed6d54e3a67c 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 a994873274af..988eb8f88c4b 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 158ea697edfd..728a4b6e6817 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 e4296a151bcc..3b24fe5884e0 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 a19364ba04f8..69997397cdfa 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 ad390f5fe5df..9018b5f8e7ef 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 cbf4a1d57393..48f90bd19819 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 106993837bed..ca41f94cf566 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 7f93312521a9..18e5241ef25b 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 8b9c4f616003..bef3fabd296d 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 03ca6377722e..94eb9d909d36 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 d36ac01109ff..2654b48c233f 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 7309151bb7ed..54d0c07d5538 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 1140f78de660..fe8c714271cd 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 de0e75f53130..ccd51760504e 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 408e626cb8c3..c54509c762a7 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 9061f164c895..0d057d678ee4 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 ae01a2af0954..a9b2201a4791 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 918e2b05a264..61b0562d5fa9 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 c0841f56dff9..2eba0e54581e 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 73d83fba5c68..3030332cc0a1 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 c7826e5bcaa4..11639e28bcb9 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 013/124] C#: Update some references to ControlFlow::Nodes. --- csharp/ql/lib/semmle/code/csharp/Callable.qll | 4 +- .../csharp/controlflow/ControlFlowGraph.qll | 46 ++++++++----------- .../semmle/code/csharp/controlflow/Guards.qll | 2 +- .../dataflow/internal/DataFlowDispatch.qll | 4 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 4 +- 5 files changed, 26 insertions(+), 34 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index 1b3b32bf9886..7859c7ea1d0e 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 c4856ece8348..ffe6c492fde8 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) } } - /** 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 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 control flow node indicating normal termination of a callable. */ - class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } + /** 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 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() } + /** A control flow node indicating normal termination of a callable. */ + class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } - override BasicBlocks::ExitBlock getBasicBlock() { result = Node.super.getBasicBlock() } - } + /** 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 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 df94d9eab7a9..867827ea432c 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 728a4b6e6817..2e8b30947889 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 9018b5f8e7ef..fc79aa401525 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 014/124] 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 03e0f3f1b740..bfce13dad184 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 1a27a3ed878d..87be3c3c1830 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 ffe6c492fde8..b322d612e393 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 867827ea432c..8d2b37dd78ba 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 ed6d54e3a67c..a67e96ee6d13 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 f89e42744f63..e7d3590e0fde 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 2e8b30947889..e23271895777 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 3b24fe5884e0..546b546e2b8f 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 69997397cdfa..5c49809ed406 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 fc79aa401525..e350aabb5340 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 3885c11afd14..037422684306 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 e3f5deb98989..602f9f0022d0 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 ca0aa83f29fc..f3942bb8f400 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 b87d31985ca2..fb5cbdbaebbc 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 f64eceda1347..38d1b2506186 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 48f90bd19819..d7defb8e28c3 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 cf4b44239e92..55267fad17cf 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 fe8c714271cd..6bea23905ea7 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 2aeb57e29fb8..97471fec351b 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 02ffbc535ce8..7a2dff9c92e0 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 70f9af36494a..b78bc4c784a5 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 650d0f6bed42..4bdfd5082a8e 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 015/124] 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 f1a7d2cebdcb..874e657cf084 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 b322d612e393..0c357f755590 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 a32abfe6d689..ecacbf2cc4d6 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 8d2b37dd78ba..7add823f938a 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 a67e96ee6d13..5067a383a59e 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 988eb8f88c4b..1bec68138080 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 e23271895777..367d5974a266 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 546b546e2b8f..6611ced6cc8d 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 e350aabb5340..0ca5bec31fe3 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 fdb9da4ca765..0df87ac46701 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 b071b33164e0..ced1bccdbb2d 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 bb10b7c9ffaf..94218ca6c7e5 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 2c4d1f319d45..28cdb3a5af2e 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 016/124] 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 | 758 ++- .../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, 636 insertions(+), 8231 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 ca153bfb97db..ed350932bd86 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 4b0d15f8a819..883014fdcf08 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 bfce13dad184..983206aada2c 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 927741f07bfe..869be5aea9fe 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 aa92b1192042..c418446b2164 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 266526a64f5f..134332ee75de 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 65937c82e675..000000000000 --- 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 87be3c3c1830..a0a578e23884 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 0c357f755590..4d061ed5952d 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 @@ +/** + * Provides classes representing the control flow graph within callables. + */ + 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 ControlFlowNode = ControlFlow::Node; + class BooleanLiteral extends FinalBoolLiteral { + boolean getValue() { result = this.getBoolValue() } + } -class BasicBlock = ControlFlow::BasicBlock; + final private class FinalIsExpr = CS::IsExpr; + + class PatternMatchExpr extends FinalIsExpr { + AstNode getPattern() { result = super.getPattern() } + } +} /** - * Provides classes representing the control flow graph within callables. + * A compilation. + * + * Unlike the standard `Compilation` class, this class also supports buildless + * extraction. */ -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 +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. - * - * 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`). + * 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`. * - * 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() } - - 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 } - - /** - * 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 - } + 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 + ) + } - /** - * 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 - ) - } + /** + * 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() + ) + } - /** - * 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 - } + /** + * 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 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 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 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)) + ) + } +} - /** - * 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)) - } +private module Input implements InputSig1, InputSig2 { + predicate cfgCachedStageRef() { CfgCachedStage::ref() } - /** Gets the enclosing callable of this control flow node. */ - final Callable getEnclosingCallable() { result = Impl::getNodeCfgScope(this) } - } + predicate catchAll(Ast::CatchClause catch) { catch instanceof GeneralCatchClause } - /** 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 matchAll(Ast::Case c) { c instanceof DefaultCase or c.(SwitchCaseExpr).matchesAll() } - /** 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 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" + } } - /** A control flow node indicating normal termination of a callable. */ - class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } + 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. */ - class ExitNode extends Node instanceof Impl::ExitNode { - /** 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) } - class BasicBlock = BBs::BasicBlock; + predicate inConditionalContext(Ast::AstNode n, ConditionKind kind) { + kind.isNullness() and + exists(QualifiableExpr qe | qe.isConditional() | n = getQualifier(qe)) + } - /** Provides different types of basic blocks. */ - module BasicBlocks { - class EntryBlock = BBs::EntryBasicBlock; + predicate postOrInOrder(Ast::AstNode n) { n instanceof YieldStmt or n instanceof Call } + + 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 ecacbf2cc4d6..33d96a61fc7e 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 7add823f938a..da17da616a07 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 e734e79402bf..85a514d5236c 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 dc2c7477a35a..000000000000 --- 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 10f92d882b79..45f802619bed 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 173179216f3d..000000000000 --- 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 5067a383a59e..11124cc20949 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 1bec68138080..3af93ee29458 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 367d5974a266..ed45135c4d83 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 6611ced6cc8d..043ba2fc2288 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 0ca5bec31fe3..3924bd7fb5a7 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 5b199aebc549..fbc09e7ec52d 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 212e622c5621..e53e3a44276d 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 e112b08f8ba9..c55109528049 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 53b44f873a64..a9ad31dc804c 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 6a9a906d53be..8e36f4f1ad1b 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 18e5241ef25b..d616c2377c3f 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 ed7190e69ff3..f2a13923478c 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 0ec6939dfb22..616c4d1b95f4 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 08f37467efef..60bd04647fda 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 602dd8c2a528..000000000000 --- 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 d51cbcb82c40..000000000000 --- 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 6915c2a546cd..b8026566563e 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 6bea23905ea7..ce2a5b9d60d0 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 c54509c762a7..65d471b49eb7 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 a9b2201a4791..927d21e8ec70 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 cfd21d14b5e0..a6c58b33dad5 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 03ee8988b381..d52f423c0808 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 017/124] 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 ced1bccdbb2d..4c189ca0274c 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 018/124] 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 94eb9d909d36..f86b97ef3023 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 019/124] 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 8102b4a02880..1aa558194e3a 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 020/124] 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 3924bd7fb5a7..d4842ba89cc4 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 770fab65f545..10ea1c8eb524 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 272a8e0caae9..63bd0c18a75c 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 021/124] 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 e69a5cbe088c..1acf66efd962 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 6fdda8812ab2..ec1f230cf88c 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 3f117d6412e3..9fe8df76f181 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 46aba07eb377..625ce3c79a35 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 d6dfac1475ae..75ad81d4ef1a 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 022/124] 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 923d62a96ecb..874b9aecfb52 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 023/124] 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 ac260924d10a..649e83623705 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 d322431b1df8..b34cae88b800 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 d322431b1df8..b34cae88b800 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 8c4abb815e8b..045967d6134f 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 @@ void M3(string? x, string? y) 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 024/124] 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 649e83623705..b274d7905b2a 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 b34cae88b800..c038c49ba176 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 b34cae88b800..c038c49ba176 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 025/124] 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 90ef19f62fe0..61693ac518ee 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 026/124] 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 bc1f2cad5c70..3e285f8d7bb6 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 027/124] 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 4dce60d9c2d9..ae15c963f5ec 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 028/124] 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 b390b5be6394..b3fb032a26c6 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 029/124] 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 983206aada2c..6060304bd9c7 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 030/124] 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 ff3ec45f5cea..000000000000 --- 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 031/124] 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 248562dbc833..ea8c1df43634 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 032/124] 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 29533a67083f..8dcf5e1778cc 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 4be5dcf12952..56621390ff31 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 033/124] 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 e27ea53adbd1..d805f62e6b73 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 034/124] 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 5c49809ed406..7919b38de3fd 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 1e60165d7484..60ebece0ee5b 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 035/124] 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 11124cc20949..87710acd262f 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 043ba2fc2288..c8294c706b21 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 f86b97ef3023..0b59ea928248 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 036/124] C#: Rework DataFlowCallable-to-cfg relation in terms of basic blocks for performance. --- .../dataflow/internal/DataFlowDispatch.qll | 47 ++++++++++--------- .../dataflow/internal/DataFlowPrivate.qll | 4 +- 2 files changed, 27 insertions(+), 24 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 ed45135c4d83..e365385c6d44 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 + result.getANode().isBefore(body) + ) } pragma[nomagic] - private ControlFlowNode getAMultiBodyControlFlowNodePred() { - result = this.getAMultiBodyEntryNode(_, _).getAPredecessor() + private BasicBlock getAMultiBodyControlFlowPred() { + result = this.getAMultiBodyEntryBlock().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 = 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 c8294c706b21..00a0ca06ae34 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 037/124] 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 9802f2b01955..98a7879a6a3e 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 cda25b6abd12..05c221394867 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 072d874d8d4f..209cb10f8116 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 99f8c25b49e2..db951b3ba80e 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 544bc1bd776c..387feb47b7ac 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 d76f989e5cff..896b4cb0613c 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 ce37b655bb85..b7bd4981019d 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 b8d360d16084..fb61262d6f26 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 fb2ca2f17591..6ab83277fcfe 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 465d64ab9c2b..faa377343645 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 f8d1de5d7e90..2ceca1d0387a 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 c6ecf8bcfd98..d50ac10c41e4 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 06e4623611b3..0f9769342d1f 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 1506d03ab340..43bfd33106a6 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 137c1b7241c4..e649e3a07dec 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 3d2c7df895fa..2b89fa6670e5 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 d0838ceed01b..0c425d257cf5 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 038/124] 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 bcd15ee78311..37639ca837a5 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 039/124] 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 ca41f94cf566..bcb134a4e737 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 040/124] 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 a0a578e23884..3847ce9494d8 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 d52f423c0808..c13ab65ff327 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 88160ef2e28e203085b1b7e1a07e5639bbbbcf86 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 13 Apr 2026 10:05:30 +0200 Subject: [PATCH 041/124] 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 000000000000..9c588fbcfa8f --- /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 4b5ff0b89ee4e220f3bf4bd2e77b2b6426da3752 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 15:52:33 +0000 Subject: [PATCH 042/124] 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 05b792340ddb..8f4dd8d7cf64 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 043/124] 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 | 66874 ++++++++-------- 3 files changed, 33883 insertions(+), 33059 deletions(-) diff --git a/python/extractor/tsg-python/tsp/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json index 552597b18a9b..8fb9763034ef 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 f8659f44e2e8..6579591c6522 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 c0d6afc81eeb..16db1b93d977 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,140 +15237,21 @@ 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_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), - [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(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -15336,52 +15259,53 @@ 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(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(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), + [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(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15427,79 +15351,79 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(111), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(83), [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), + [STATE(60)] = { + [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), @@ -15545,80 +15469,79 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(113), + [sym__dedent] = ACTIONS(111), [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, - [STATE(62)] = { - [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), + [STATE(61)] = { + [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), @@ -15633,24 +15556,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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_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(57), + [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(67), + [anon_sym_class] = ACTIONS(103), [anon_sym_AT] = ACTIONS(69), [anon_sym_not] = ACTIONS(71), [anon_sym_TILDE] = ACTIONS(49), @@ -15664,196 +15587,197 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(113), [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), + [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(231), - [sym__string_start] = ACTIONS(233), - [sym__template_string_start] = ACTIONS(236), + [sym__dedent] = ACTIONS(229), + [sym__string_start] = ACTIONS(231), + [sym__template_string_start] = ACTIONS(234), }, - [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), + [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), @@ -15899,26 +15823,144 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(239), + [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(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), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [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(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(1172), + [ts_builtin_sym_end] = ACTIONS(239), + [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(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(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,48 +16950,342 @@ 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), + [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(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(349), + [sym__indent] = ACTIONS(351), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(76)] = { + [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), + [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(357), + [sym__indent] = ACTIONS(359), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(78)] = { + [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(351), - [anon_sym_GT_GT] = ACTIONS(353), + [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(351), + [anon_sym_async] = ACTIONS(363), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(351), + [anon_sym_match] = ACTIONS(363), [anon_sym_PIPE] = ACTIONS(272), [anon_sym_DASH] = ACTIONS(272), [anon_sym_PLUS] = ACTIONS(272), @@ -16957,8 +17293,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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_exec] = ACTIONS(363), + [anon_sym_type] = ACTIONS(363), [anon_sym_AT] = ACTIONS(272), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -16995,7 +17331,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(355), + [anon_sym_await] = ACTIONS(367), [sym_true] = ACTIONS(79), [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), @@ -17005,62 +17341,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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), + [STATE(79)] = { + [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), @@ -17098,67 +17434,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(357), - [sym__indent] = ACTIONS(359), + [sym__newline] = ACTIONS(369), + [sym__indent] = ACTIONS(371), [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), + [STATE(80)] = { + [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), @@ -17196,67 +17532,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(361), - [sym__indent] = ACTIONS(363), + [sym__newline] = ACTIONS(373), + [sym__indent] = ACTIONS(375), [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), + [STATE(81)] = { + [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), @@ -17294,67 +17630,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(365), - [sym__indent] = ACTIONS(367), + [sym__newline] = ACTIONS(377), + [sym__indent] = ACTIONS(379), [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), + [STATE(82)] = { + [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), @@ -17392,67 +17728,263 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(369), - [sym__indent] = ACTIONS(371), + [sym__newline] = ACTIONS(381), + [sym__indent] = ACTIONS(383), [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, - [STATE(80)] = { + [STATE(83)] = { + [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), + [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(385), + [sym__indent] = ACTIONS(387), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(84)] = { + [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), + [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(389), + [sym__indent] = ACTIONS(391), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(85)] = { [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_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), @@ -17490,67 +18022,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(373), - [sym__indent] = ACTIONS(375), + [sym__newline] = ACTIONS(393), + [sym__indent] = ACTIONS(395), [sym__string_start] = ACTIONS(83), [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), + [STATE(86)] = { + [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), @@ -17588,67 +18120,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(377), - [sym__indent] = ACTIONS(379), + [sym__newline] = ACTIONS(397), + [sym__indent] = ACTIONS(399), [sym__string_start] = ACTIONS(83), [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), + [STATE(87)] = { + [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), @@ -17686,67 +18218,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(381), - [sym__indent] = ACTIONS(383), + [sym__newline] = ACTIONS(401), + [sym__indent] = ACTIONS(403), [sym__string_start] = ACTIONS(83), [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), + [STATE(88)] = { + [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), @@ -17784,67 +18316,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(385), - [sym__indent] = ACTIONS(387), + [sym__newline] = ACTIONS(405), + [sym__indent] = ACTIONS(407), [sym__string_start] = ACTIONS(83), [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), + [STATE(89)] = { + [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), @@ -17882,67 +18414,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(389), - [sym__indent] = ACTIONS(391), + [sym__newline] = ACTIONS(409), + [sym__indent] = ACTIONS(411), [sym__string_start] = ACTIONS(83), [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), + [STATE(90)] = { + [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), @@ -17980,67 +18512,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(393), - [sym__indent] = ACTIONS(395), + [sym__newline] = ACTIONS(413), + [sym__indent] = ACTIONS(415), [sym__string_start] = ACTIONS(83), [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), + [STATE(91)] = { + [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), @@ -18078,67 +18610,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(397), - [sym__indent] = ACTIONS(399), + [sym__newline] = ACTIONS(417), + [sym__indent] = ACTIONS(419), [sym__string_start] = ACTIONS(83), [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), + [STATE(92)] = { + [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), @@ -18176,67 +18708,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(401), - [sym__indent] = ACTIONS(403), + [sym__newline] = ACTIONS(421), + [sym__indent] = ACTIONS(423), [sym__string_start] = ACTIONS(83), [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), + [STATE(93)] = { + [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), @@ -18274,67 +18806,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(405), - [sym__indent] = ACTIONS(407), + [sym__newline] = ACTIONS(425), + [sym__indent] = ACTIONS(427), [sym__string_start] = ACTIONS(83), [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), + [STATE(94)] = { + [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), @@ -18372,67 +18904,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(409), - [sym__indent] = ACTIONS(411), + [sym__newline] = ACTIONS(429), + [sym__indent] = ACTIONS(431), [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), + [STATE(95)] = { + [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), @@ -18470,67 +19002,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(413), - [sym__indent] = ACTIONS(415), + [sym__newline] = ACTIONS(433), + [sym__indent] = ACTIONS(435), [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), + [STATE(96)] = { + [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), @@ -18568,67 +19100,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(417), - [sym__indent] = ACTIONS(419), + [sym__newline] = ACTIONS(437), + [sym__indent] = ACTIONS(439), [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), + [STATE(97)] = { + [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), @@ -18666,67 +19198,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(421), - [sym__indent] = ACTIONS(423), + [sym__newline] = ACTIONS(441), + [sym__indent] = ACTIONS(443), [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), + [STATE(98)] = { + [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), @@ -18764,67 +19296,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(425), - [sym__indent] = ACTIONS(427), + [sym__newline] = ACTIONS(445), + [sym__indent] = ACTIONS(447), [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), + [STATE(99)] = { + [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), @@ -18862,67 +19394,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(429), - [sym__indent] = ACTIONS(431), + [sym__newline] = ACTIONS(449), + [sym__indent] = ACTIONS(451), [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), + [STATE(100)] = { + [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), @@ -18960,67 +19492,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(433), - [sym__indent] = ACTIONS(435), + [sym__newline] = ACTIONS(453), + [sym__indent] = ACTIONS(455), [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), + [STATE(101)] = { + [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), @@ -19058,67 +19590,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(437), - [sym__indent] = ACTIONS(439), + [sym__newline] = ACTIONS(457), + [sym__indent] = ACTIONS(459), [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), + [STATE(102)] = { + [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), @@ -19156,67 +19688,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(441), - [sym__indent] = ACTIONS(443), + [sym__newline] = ACTIONS(461), + [sym__indent] = ACTIONS(463), [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), + [STATE(103)] = { + [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), @@ -19254,67 +19786,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(445), - [sym__indent] = ACTIONS(447), + [sym__newline] = ACTIONS(465), + [sym__indent] = ACTIONS(467), [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), + [STATE(104)] = { + [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), @@ -19352,67 +19884,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(449), - [sym__indent] = ACTIONS(451), + [sym__newline] = ACTIONS(469), + [sym__indent] = ACTIONS(471), [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), + [STATE(105)] = { + [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), @@ -19450,67 +19982,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(453), - [sym__indent] = ACTIONS(455), + [sym__newline] = ACTIONS(473), + [sym__indent] = ACTIONS(475), [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), + [STATE(106)] = { + [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), @@ -19548,67 +20080,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(457), - [sym__indent] = ACTIONS(459), + [sym__newline] = ACTIONS(477), + [sym__indent] = ACTIONS(479), [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), + [STATE(107)] = { + [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), @@ -19646,557 +20178,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(461), - [sym__indent] = ACTIONS(463), + [sym__newline] = ACTIONS(481), + [sym__indent] = ACTIONS(483), [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), + [STATE(108)] = { + [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(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(583), + [anon_sym_DOT] = ACTIONS(272), + [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(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_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,49 +23125,49 @@ 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), + [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), - [anon_sym_from] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(594), + [anon_sym_LPAREN] = ACTIONS(616), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(592), + [anon_sym_print] = ACTIONS(614), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_COLON_EQ] = ACTIONS(618), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(592), + [anon_sym_async] = ACTIONS(614), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(592), + [anon_sym_match] = ACTIONS(614), [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_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(592), - [anon_sym_type] = ACTIONS(592), + [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), @@ -23138,7 +23178,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(49), + [anon_sym_TILDE] = ACTIONS(620), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23147,63 +23187,63 @@ 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(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_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(303), - [sym__newline] = ACTIONS(303), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [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_identifier] = ACTIONS(612), - [anon_sym_lazy] = ACTIONS(614), + [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(616), + [anon_sym_from] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(614), + [anon_sym_print] = ACTIONS(573), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(618), + [anon_sym_COLON_EQ] = ACTIONS(283), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(614), + [anon_sym_async] = ACTIONS(573), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(614), + [anon_sym_match] = ACTIONS(573), [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_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(614), - [anon_sym_type] = ACTIONS(614), + [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), @@ -23214,7 +23254,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(620), + [anon_sym_TILDE] = ACTIONS(49), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23223,63 +23263,63 @@ 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(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_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), - [sym__string_start] = ACTIONS(630), - [sym__template_string_start] = ACTIONS(632), + [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(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(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_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_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_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(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(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(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(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,60 +23718,60 @@ 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), + [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), - [anon_sym_from] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(594), + [anon_sym_LPAREN] = ACTIONS(616), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(592), + [anon_sym_print] = ACTIONS(614), [anon_sym_GT_GT] = ACTIONS(303), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(592), + [anon_sym_async] = ACTIONS(614), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(592), + [anon_sym_match] = ACTIONS(614), [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_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(592), - [anon_sym_type] = ACTIONS(592), + [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), @@ -23742,7 +23782,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(49), + [anon_sym_TILDE] = ACTIONS(620), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23751,64 +23791,64 @@ 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(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_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(303), - [sym__newline] = ACTIONS(303), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [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_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(658), - [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(587), + [anon_sym_COMMA] = ACTIONS(587), [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(660), + [anon_sym_COLON_EQ] = ACTIONS(604), [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = 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(662), - [anon_sym_PLUS] = ACTIONS(662), - [anon_sym_LBRACK] = ACTIONS(664), + [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_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), @@ -23819,7 +23859,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(662), + [anon_sym_TILDE] = ACTIONS(606), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23831,7 +23871,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(666), + [anon_sym_await] = ACTIONS(610), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23840,48 +23880,50 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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_identifier] = ACTIONS(612), - [anon_sym_lazy] = ACTIONS(614), + [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(616), - [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(277), + [anon_sym_COMMA] = ACTIONS(277), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(614), + [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(614), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(614), + [anon_sym_match] = ACTIONS(583), [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_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_EQ] = ACTIONS(272), - [anon_sym_exec] = ACTIONS(614), - [anon_sym_type] = ACTIONS(614), + [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), @@ -23892,7 +23934,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(620), + [anon_sym_TILDE] = ACTIONS(606), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23901,61 +23943,58 @@ 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(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_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(630), - [sym__template_string_start] = ACTIONS(632), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [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), - [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_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(301), - [anon_sym_PLUS] = ACTIONS(301), - [anon_sym_LBRACK] = ACTIONS(586), - [anon_sym_LBRACE] = ACTIONS(293), + [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(634), + [anon_sym_EQ] = ACTIONS(272), [anon_sym_exec] = ACTIONS(573), [anon_sym_type] = ACTIONS(573), [anon_sym_AT] = ACTIONS(303), @@ -23968,7 +24007,83 @@ 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(301), + [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), @@ -23980,7 +24095,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(644), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23988,50 +24103,50 @@ 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), + [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(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_if] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(303), - [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), @@ -24042,7 +24157,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), @@ -24051,61 +24166,61 @@ 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(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), + [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(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(658), + [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(590), [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(303), - [anon_sym_async] = ACTIONS(573), - [anon_sym_for] = ACTIONS(272), + [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(662), - [anon_sym_PLUS] = ACTIONS(662), - [anon_sym_LBRACK] = ACTIONS(664), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(596), [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_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), @@ -24116,7 +24231,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(662), + [anon_sym_TILDE] = ACTIONS(301), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -24128,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(666), + [anon_sym_await] = ACTIONS(600), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -24136,46 +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(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), + [STATE(154)] = { + [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), @@ -24205,46 +24320,46 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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), + [STATE(155)] = { + [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), @@ -24274,46 +24389,46 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(83), [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), + [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,47 +24748,63 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [375] = 23, + [379] = 30, 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, + ACTIONS(668), 1, sym_identifier, - ACTIONS(696), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(698), 1, + ACTIONS(676), 1, anon_sym_STAR, - ACTIONS(702), 1, - anon_sym_in, - ACTIONS(704), 1, + ACTIONS(678), 1, anon_sym_LBRACK, - ACTIONS(706), 1, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(692), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, + STATE(705), 1, sym_primary_expression, + STATE(1095), 1, + sym_expression, + STATE(1218), 1, + sym_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1690), 1, + sym__patterns, + STATE(1692), 1, + sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(584), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(848), 2, + STATE(917), 2, sym_attribute, sym_subscript, - STATE(1001), 3, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24680,30 +24813,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(694), 6, + ACTIONS(670), 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, + 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, @@ -24719,7 +24843,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [486] = 23, + [504] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24730,36 +24854,124 @@ 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, - anon_sym_LPAREN, 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(710), 1, + ACTIONS(712), 1, anon_sym_in, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(998), 1, + STATE(1002), 1, sym_pattern, - STATE(1013), 1, + STATE(1017), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(584), 2, + ACTIONS(594), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(848), 2, + STATE(842), 2, sym_attribute, sym_subscript, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24768,14 +24980,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, - ACTIONS(708), 15, + ACTIONS(710), 15, anon_sym_COLON, anon_sym_EQ, anon_sym_PLUS_EQ, @@ -24791,7 +25003,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24807,7 +25019,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [597] = 29, + [726] = 30, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24820,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, @@ -24832,40 +25044,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(686), 1, anon_sym_await, - ACTIONS(712), 1, + ACTIONS(714), 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(1080), 1, sym_expression, - STATE(1311), 1, + STATE(1204), 1, + sym_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1675), 1, - sym__patterns, - STATE(1716), 1, + STATE(1657), 1, sym__collection_elements, + 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, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -24878,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, @@ -24901,7 +25114,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [720] = 30, + [851] = 31, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24914,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, @@ -24926,38 +25139,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(686), 1, anon_sym_await, - ACTIONS(714), 1, + ACTIONS(716), 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(1083), 1, + STATE(1086), 1, sym_expression, - STATE(1311), 1, + STATE(1187), 1, + sym_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1395), 1, + STATE(1432), 1, sym_yield, - STATE(1680), 1, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, sym__collection_elements, - STATE(1689), 1, + 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, @@ -24973,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, @@ -24996,7 +25210,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [845] = 29, + [978] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -25005,78 +25219,77 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(668), 1, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, sym_identifier, - ACTIONS(672), 1, + ACTIONS(722), 1, anon_sym_LPAREN, - ACTIONS(674), 1, + ACTIONS(724), 1, + anon_sym_COMMA, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(676), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(728), 1, + anon_sym_RBRACE, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(734), 1, anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(686), 1, + ACTIONS(736), 1, anon_sym_await, - ACTIONS(716), 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(775), 1, sym_primary_expression, - STATE(1079), 1, + STATE(1047), 1, sym_expression, - STATE(1311), 1, - sym_pattern, - STATE(1675), 1, - sym__patterns, - STATE(1716), 1, + STATE(1203), 1, + sym_list_splat, + STATE(1727), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, - sym_attribute, - sym_subscript, - ACTIONS(606), 3, + 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, - 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, + 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), 15, + STATE(720), 17, sym_binary_operator, sym_unary_operator, + sym_attribute, + sym_subscript, sym_call, sym_list, sym_set, @@ -25090,18 +25303,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [968] = 29, + [1100] = 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, @@ -25109,43 +25320,45 @@ static const uint16_t ts_small_parse_table[] = { 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, + 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, - STATE(645), 1, + ACTIONS(738), 1, + anon_sym_COMMA, + ACTIONS(740), 1, + anon_sym_RBRACE, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(780), 1, + STATE(775), 1, sym_primary_expression, - STATE(1059), 1, + STATE(1063), 1, sym_expression, - STATE(1199), 1, - sym_pair, - STATE(1432), 1, - sym_dictionary_splat, - STATE(1638), 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, @@ -25158,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, @@ -25183,18 +25396,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1090] = 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, @@ -25205,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_await, + anon_sym_lambda, ACTIONS(736), 1, + anon_sym_await, + ACTIONS(742), 1, anon_sym_COMMA, - ACTIONS(738), 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(1055), 1, + STATE(1041), 1, sym_expression, - STATE(1214), 1, - sym_pair, - STATE(1426), 1, - sym_dictionary_splat, - STATE(1616), 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, @@ -25251,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, @@ -25276,18 +25489,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1212] = 29, + [1344] = 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, @@ -25298,40 +25509,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(740), 1, + ACTIONS(746), 1, anon_sym_COMMA, - ACTIONS(742), 1, + ACTIONS(748), 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(1067), 1, sym_expression, - STATE(1192), 1, - sym_pair, - STATE(1407), 1, - sym_dictionary_splat, - STATE(1708), 1, + STATE(1228), 1, + sym_list_splat, + STATE(1688), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + STATE(1184), 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 +25557,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,82 +25582,78 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1334] = 29, + [1466] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(718), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(722), 1, - anon_sym_LPAREN, - ACTIONS(726), 1, + ACTIONS(754), 1, + anon_sym_from, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(730), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(732), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(734), 1, + ACTIONS(764), 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, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1107), 1, sym_expression, - STATE(1170), 1, - sym_pair, - STATE(1505), 1, - sym_dictionary_splat, - STATE(1684), 1, - sym__collection_elements, - ACTIONS(309), 2, + STATE(1237), 1, + sym_expression_list, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + STATE(1588), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 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, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(720), 6, + ACTIONS(758), 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(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25462,7 +25671,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1456] = 26, + [1581] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25479,30 +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(748), 1, + ACTIONS(766), 1, anon_sym_from, - 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(1144), 1, + STATE(1175), 1, sym_expression, - STATE(1186), 1, + STATE(1237), 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, @@ -25514,7 +25723,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(750), 4, + ACTIONS(758), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, @@ -25526,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, @@ -25551,78 +25760,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1571] = 26, + [1696] = 24, 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, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(726), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(758), 1, - anon_sym_from, - ACTIONS(760), 1, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1102), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, sym_expression, - STATE(1186), 1, - sym_expression_list, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1568), 2, + STATE(1291), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(750), 4, + ACTIONS(770), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25640,7 +25846,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1686] = 24, + [1806] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25657,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, @@ -25688,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, @@ -25701,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, @@ -25726,7 +25932,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1796] = 24, + [1916] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25743,26 +25949,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 +25980,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(768), 5, + ACTIONS(772), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -25787,14 +25993,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,75 +26018,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1906] = 24, + [2026] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 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, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - STATE(645), 1, + 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(658), 1, + STATE(782), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1153), 1, + STATE(1120), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1262), 2, + STATE(1301), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(766), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, + ACTIONS(772), 4, anon_sym_RBRACE, - ACTIONS(270), 6, + 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(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25898,75 +26103,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2016] = 25, + [2135] = 24, 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, + ACTIONS(268), 1, sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(770), 1, + 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, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1096), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1568), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1291), 3, - sym_expression_list, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, sym_yield, - sym__f_expression, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25984,76 +26188,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2127] = 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, - 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 +26273,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2240] = 26, + [2353] = 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, @@ -26158,74 +26358,77 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2353] = 24, + [2462] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, + ACTIONS(55), 1, + anon_sym_STAR_STAR, 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, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, + 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(790), 1, + anon_sym_RPAREN, ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, + anon_sym_COMMA, + ACTIONS(794), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1193), 1, + STATE(1087), 1, sym_expression, + STATE(1212), 1, + sym_list_splat, + STATE(1490), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + STATE(1486), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(790), 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, + 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, @@ -26243,7 +26446,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2462] = 26, + [2577] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -26258,35 +26461,35 @@ 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, - ACTIONS(794), 1, + ACTIONS(796), 1, anon_sym_from, - 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(1195), 1, + STATE(1210), 1, sym_expression, - STATE(1533), 1, + STATE(1569), 1, sym_expression_list, ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(750), 2, + ACTIONS(758), 2, sym__newline, anon_sym_SEMI, - STATE(1520), 2, + STATE(1590), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(49), 3, @@ -26298,21 +26501,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, @@ -26330,76 +26533,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2575] = 26, + [2690] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 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, + STATE(694), 1, sym_string, - STATE(1134), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, sym_expression, - STATE(1458), 1, - sym_expression_list, - ACTIONS(77), 2, + ACTIONS(309), 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, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(798), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -26417,76 +26618,77 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2688] = 26, + [2799] = 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(794), 1, + anon_sym_await, ACTIONS(800), 1, - sym_identifier, - ACTIONS(804), 1, anon_sym_RPAREN, - ACTIONS(806), 1, + ACTIONS(802), 1, anon_sym_COMMA, - ACTIONS(808), 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(1094), 1, sym_expression, - STATE(1393), 1, + STATE(1211), 1, + sym_list_splat, + STATE(1497), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + STATE(1496), 2, + sym_dictionary_splat, + sym_keyword_argument, + 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(802), 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, @@ -26504,75 +26706,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2801] = 25, + [2914] = 26, ACTIONS(3), 1, sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, 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, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(754), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(770), 1, - anon_sym_yield, - STATE(763), 1, + 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(766), 1, + STATE(779), 1, sym_string, - STATE(776), 1, - sym_template_string, - STATE(1096), 1, + STATE(1137), 1, sym_expression, - ACTIONS(626), 2, + STATE(1446), 1, + sym_expression_list, + ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1568), 2, + ACTIONS(806), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(620), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1269), 3, - sym_expression_list, - sym_yield, - sym__f_expression, - ACTIONS(612), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26590,74 +26793,78 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2912] = 24, + [3027] = 28, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(762), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - ACTIONS(810), 1, - anon_sym_STAR, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, ACTIONS(812), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1154), 1, + STATE(705), 1, + sym_primary_expression, + STATE(1048), 1, sym_expression, - ACTIONS(626), 2, + 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, - STATE(1266), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(620), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(768), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(756), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26675,9 +26882,11 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3021] = 24, + [3144] = 25, ACTIONS(3), 1, sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, ACTIONS(616), 1, anon_sym_LPAREN, ACTIONS(622), 1, @@ -26688,61 +26897,60 @@ 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(756), 1, + anon_sym_STAR, 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, + ACTIONS(818), 1, + anon_sym_yield, + 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(1103), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1266), 2, + STATE(1588), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, + STATE(1296), 3, + sym_expression_list, + sym_yield, + sym__f_expression, 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, + 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, @@ -26760,7 +26968,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3130] = 24, + [3255] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -26773,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, @@ -26781,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, @@ -26808,26 +27016,26 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(766), 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, @@ -26845,74 +27053,77 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3239] = 24, + [3364] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, + ACTIONS(55), 1, + anon_sym_STAR_STAR, 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, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, + 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(792), 1, - anon_sym_STAR, - STATE(645), 1, + ACTIONS(794), 1, + anon_sym_await, + ACTIONS(820), 1, + anon_sym_RPAREN, + ACTIONS(822), 1, + anon_sym_COMMA, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1193), 1, + STATE(1093), 1, sym_expression, + STATE(1186), 1, + sym_list_splat, + STATE(1453), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + STATE(1452), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 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, + 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, @@ -26930,74 +27141,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3348] = 24, + [3479] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, anon_sym_STAR, - STATE(645), 1, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, + STATE(1120), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + STATE(1301), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 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, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + 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(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27015,7 +27226,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3457] = 26, + [3588] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -27034,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(804), 1, + ACTIONS(824), 1, anon_sym_RPAREN, - ACTIONS(806), 1, + 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(1087), 1, + STATE(1075), 1, sym_expression, - STATE(1393), 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(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, + 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, @@ -27102,77 +27314,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3570] = 27, + [3703] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + 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(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(762), 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, + ACTIONS(764), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(818), 1, + anon_sym_yield, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1057), 1, + STATE(1103), 1, sym_expression, - STATE(1404), 1, - sym_yield, - STATE(1484), 1, - sym_with_item, - STATE(1687), 1, - sym__collection_elements, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1290), 2, + STATE(1588), 2, sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + sym_dictionary_splat, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + STATE(1289), 3, + sym_expression_list, + sym_yield, + sym__f_expression, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27190,53 +27400,53 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3685] = 26, + [3814] = 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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(772), 1, - sym_identifier, - ACTIONS(776), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(782), 1, - anon_sym_await, - ACTIONS(824), 1, + ACTIONS(800), 1, anon_sym_RPAREN, - ACTIONS(826), 1, + ACTIONS(802), 1, anon_sym_COMMA, - STATE(645), 1, + 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(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1071), 1, + STATE(1258), 1, sym_expression, - STATE(1416), 1, + STATE(1497), 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(1415), 3, + STATE(1468), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -27245,21 +27455,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(774), 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, @@ -27277,7 +27487,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3798] = 25, + [3927] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -27290,29 +27500,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(828), 1, + ACTIONS(834), 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, @@ -27321,7 +27531,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, @@ -27330,21 +27540,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,7 +27572,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3908] = 23, + [4037] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -27371,63 +27581,67 @@ 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(816), 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(822), 1, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, + ACTIONS(836), 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(1092), 1, + 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, - 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, + 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, @@ -27445,74 +27659,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4014] = 25, + [4151] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + 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, + 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(355), 1, + ACTIONS(832), 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, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(1212), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, sym_expression, - ACTIONS(77), 2, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 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, + 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, @@ -27530,74 +27744,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4124] = 25, + [4261] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + 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(838), 1, + 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_STAR_STAR, - ACTIONS(842), 1, - anon_sym_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(1212), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, sym_expression, - ACTIONS(77), 2, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 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, + 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, @@ -27615,74 +27829,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4234] = 25, + [4371] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + 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(838), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(840), 1, - anon_sym_STAR_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_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(1212), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, sym_expression, - ACTIONS(77), 2, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 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, + 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, @@ -27700,72 +27914,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4344] = 23, + [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(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(816), 1, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, + ACTIONS(844), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1092), 1, + STATE(1321), 1, sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, 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, + ACTIONS(301), 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, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 5, + 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, @@ -27783,13 +27999,11 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4450] = 25, + [4591] = 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, @@ -27798,33 +28012,35 @@ 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(846), 1, + anon_sym_from, + ACTIONS(848), 1, anon_sym_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, sym_string, - STATE(1206), 1, + STATE(1219), 1, sym_expression, - STATE(1530), 1, - sym_expression_list, ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(848), 2, + ACTIONS(772), 2, sym__newline, anon_sym_SEMI, - STATE(1520), 2, + STATE(1393), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(49), 3, @@ -27836,21 +28052,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, @@ -27868,75 +28084,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4560] = 26, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(850), 1, + ACTIONS(852), 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(704), 1, sym_primary_expression, - STATE(1068), 1, + STATE(1321), 1, sym_expression, - STATE(1479), 1, - sym_yield, - STATE(1692), 1, - sym__collection_elements, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + 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(818), 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, @@ -27954,74 +28169,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4672] = 25, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(852), 1, - anon_sym_RBRACK, - STATE(645), 1, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1084), 1, + STATE(1321), 1, sym_expression, - STATE(1693), 1, - sym__collection_elements, + STATE(1540), 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(1290), 3, + STATE(1539), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -28039,76 +28254,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4782] = 27, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(854), 1, + ACTIONS(856), 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(704), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1321), 1, sym_expression, - STATE(1385), 1, - sym_list_splat, - STATE(1390), 1, + STATE(1540), 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, + 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(818), 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, @@ -28126,75 +28339,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4896] = 26, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(820), 1, - anon_sym_RPAREN, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(858), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1321), 1, sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + 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(818), 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, @@ -28212,7 +28424,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5008] = 25, + [5141] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -28221,65 +28433,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(822), 1, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(856), 1, - anon_sym_RBRACK, - STATE(645), 1, + ACTIONS(864), 1, + anon_sym_lambda, + 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(1097), 1, sym_expression, - STATE(1716), 1, - sym__collection_elements, 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, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + 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(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, @@ -28297,74 +28507,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5118] = 25, + [5247] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - 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(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 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, + ACTIONS(361), 1, sym_identifier, - ACTIONS(808), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(858), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 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(866), 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, + 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, - 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, @@ -28382,7 +28592,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5228] = 25, + [5357] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -28395,29 +28605,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(860), 1, + ACTIONS(868), 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, @@ -28426,7 +28636,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, @@ -28435,21 +28645,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, @@ -28467,7 +28677,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5338] = 25, + [5467] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -28480,29 +28690,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(862), 1, + ACTIONS(870), 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, @@ -28511,7 +28721,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, @@ -28520,21 +28730,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, @@ -28552,7 +28762,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5448] = 25, + [5577] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -28565,29 +28775,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(864), 1, + ACTIONS(872), 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, @@ -28596,7 +28806,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, @@ -28605,21 +28815,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, @@ -28637,7 +28847,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5558] = 25, + [5687] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -28650,29 +28860,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(866), 1, + ACTIONS(874), 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, @@ -28681,7 +28891,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, @@ -28690,21 +28900,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, @@ -28722,74 +28932,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5668] = 25, + [5797] = 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, + 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(868), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(876), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1080), 1, sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, + 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(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, + 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, @@ -28807,7 +29018,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5778] = 23, + [5909] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -28816,63 +29027,67 @@ 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(816), 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(822), 1, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, + ACTIONS(878), 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(1092), 1, + 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, - 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, + 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, @@ -28890,7 +29105,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5884] = 27, + [6023] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -28907,35 +29122,34 @@ 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(880), 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(1095), 1, sym_expression, - STATE(1385), 1, + STATE(1218), 1, sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, + STATE(1692), 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, @@ -28945,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, @@ -28977,74 +29191,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5998] = 25, + [6135] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - 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(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 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, + ACTIONS(361), 1, sym_identifier, - ACTIONS(808), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(876), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 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(866), 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, + 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, - 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, @@ -29062,7 +29276,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6108] = 25, + [6245] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -29079,57 +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(878), 1, + ACTIONS(882), 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(1080), 1, sym_expression, - STATE(1716), 1, + 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, - 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, @@ -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,31 +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, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(820), 1, + ACTIONS(812), 1, anon_sym_RPAREN, - ACTIONS(822), 1, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 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(1083), 1, + STATE(1086), 1, sym_expression, - STATE(1385), 1, + STATE(1187), 1, sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, + STATE(1432), 1, sym_yield, - STATE(1680), 1, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, @@ -29202,21 +29417,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, @@ -29234,7 +29449,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6332] = 23, + [6471] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -29249,35 +29464,35 @@ 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(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(880), 3, + ACTIONS(884), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - ACTIONS(882), 3, + ACTIONS(886), 3, anon_sym_if, anon_sym_async, anon_sym_for, @@ -29286,20 +29501,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 5, + ACTIONS(810), 5, anon_sym_lazy, anon_sym_print, 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, @@ -29317,74 +29532,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6438] = 25, + [6577] = 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(884), 1, + ACTIONS(888), 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(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1086), 1, sym_expression, - STATE(1524), 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(301), 3, + ACTIONS(606), 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, + 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, @@ -29402,7 +29619,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6548] = 25, + [6691] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -29415,29 +29632,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(886), 1, + ACTIONS(890), 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, @@ -29446,7 +29663,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, @@ -29455,21 +29672,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, @@ -29487,7 +29704,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6658] = 25, + [6801] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -29500,29 +29717,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(888), 1, + ACTIONS(892), 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, @@ -29531,7 +29748,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, @@ -29540,21 +29757,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, @@ -29572,7 +29789,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6768] = 25, + [6911] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -29585,29 +29802,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(890), 1, + ACTIONS(894), 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, @@ -29616,7 +29833,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, @@ -29625,21 +29842,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, @@ -29657,7 +29874,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6878] = 25, + [7021] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -29670,29 +29887,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(892), 1, + 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, @@ -29701,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, @@ -29710,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, @@ -29742,75 +29959,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6988] = 26, + [7131] = 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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(854), 1, + ACTIONS(898), 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(704), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1321), 1, sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + 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(818), 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, @@ -29828,74 +30044,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7100] = 25, + [7241] = 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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(894), 1, - anon_sym_RBRACK, - STATE(645), 1, + ACTIONS(900), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1086), 1, + STATE(1321), 1, sym_expression, - STATE(1626), 1, - sym__collection_elements, + STATE(1540), 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(1290), 3, + STATE(1539), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -29913,74 +30129,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7210] = 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(896), 1, + ACTIONS(888), 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(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1086), 1, sym_expression, - STATE(1524), 1, + 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(301), 3, + ACTIONS(606), 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, + 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, @@ -29998,74 +30216,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7320] = 25, + [7465] = 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, + 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(898), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(902), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1092), 1, sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, + STATE(1230), 1, + sym_list_splat, + STATE(1658), 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(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, + 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, @@ -30083,74 +30302,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7430] = 25, + [7577] = 23, 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(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(900), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1097), 1, sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, + ACTIONS(904), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + 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(802), 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, @@ -30168,7 +30385,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7540] = 25, + [7683] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -30181,29 +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, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(902), 1, + 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, @@ -30212,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, @@ -30221,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, @@ -30253,7 +30470,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7650] = 25, + [7793] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -30266,29 +30483,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(904), 1, + ACTIONS(910), 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, @@ -30297,7 +30514,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, @@ -30306,21 +30523,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, @@ -30338,75 +30555,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7760] = 26, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(874), 1, + ACTIONS(912), 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(704), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1321), 1, sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + 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(818), 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, @@ -30424,7 +30640,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7872] = 25, + [8013] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -30433,65 +30649,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(822), 1, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(894), 1, - anon_sym_RBRACK, - STATE(645), 1, + ACTIONS(864), 1, + anon_sym_lambda, + 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(1097), 1, sym_expression, - STATE(1716), 1, - sym__collection_elements, 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, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + 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(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, @@ -30509,75 +30723,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7982] = 26, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(820), 1, - anon_sym_RPAREN, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(918), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1090), 1, + STATE(1321), 1, sym_expression, - STATE(1404), 1, - sym_yield, - STATE(1687), 1, - sym__collection_elements, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, + 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(818), 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, @@ -30595,74 +30808,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8094] = 25, + [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(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(832), 1, anon_sym_await, - ACTIONS(856), 1, - anon_sym_RBRACK, - STATE(645), 1, + ACTIONS(920), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1085), 1, + STATE(1321), 1, sym_expression, - STATE(1698), 1, - sym__collection_elements, + STATE(1540), 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(1290), 3, + STATE(1539), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -30680,74 +30893,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8204] = 25, + [8339] = 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(906), 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(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1086), 1, sym_expression, - STATE(1524), 1, + 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(301), 3, + ACTIONS(606), 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, + 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, @@ -30765,74 +30980,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8314] = 25, + [8453] = 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, + 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(908), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(902), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1080), 1, sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, + 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(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, + 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, @@ -30850,7 +31066,92 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8424] = 26, + [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, @@ -30867,34 +31168,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(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, anon_sym_STAR, ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, anon_sym_await, - ACTIONS(854), 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(1074), 1, sym_expression, - STATE(1430), 1, + STATE(1226), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1447), 1, sym_yield, - STATE(1618), 1, + STATE(1654), 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 +31206,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 +31238,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8536] = 24, + [8789] = 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(876), 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(1090), 1, sym_expression, + STATE(1227), 1, + sym_list_splat, + STATE(1669), 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,72 +31324,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8643] = 24, + [8901] = 27, 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(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - STATE(645), 1, + ACTIONS(816), 1, + anon_sym_await, + 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(1086), 1, sym_expression, - STATE(1696), 1, - sym_index_expression_list, + 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(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1394), 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, @@ -31102,72 +31411,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8750] = 24, + [9015] = 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, - STATE(645), 1, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1084), 1, sym_expression, - STATE(1524), 1, + 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(301), 3, + ACTIONS(606), 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, + 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, @@ -31185,7 +31498,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8857] = 24, + [9129] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31200,26 +31513,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(1614), 1, + sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, @@ -31227,7 +31540,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1515), 3, + STATE(1454), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -31243,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, @@ -31268,66 +31581,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8964] = 18, + [9236] = 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(741), 1, + STATE(704), 1, sym_primary_expression, + STATE(1246), 1, + sym_expression, + STATE(1694), 1, + sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(272), 3, - anon_sym_DOT, - anon_sym_STAR, - anon_sym_SLASH, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(916), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(311), 5, + STATE(1470), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, sym_integer, - sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(303), 9, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - STATE(725), 17, + 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, @@ -31345,7 +31664,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9059] = 24, + [9343] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31360,25 +31679,25 @@ 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, - anon_sym_STAR, - ACTIONS(814), 1, + ACTIONS(780), 1, anon_sym_RPAREN, - 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(1193), 1, + STATE(1179), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -31387,7 +31706,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1348), 3, + STATE(1354), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -31403,14 +31722,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, @@ -31428,7 +31747,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9166] = 24, + [9450] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31443,25 +31762,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(1594), 1, + STATE(1660), 1, sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, @@ -31470,7 +31789,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1405), 3, + STATE(1501), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -31486,14 +31805,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, @@ -31511,7 +31830,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9273] = 24, + [9557] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31526,26 +31845,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(814), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(924), 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(1193), 1, + STATE(1246), 1, sym_expression, + STATE(1735), 1, + sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, @@ -31553,10 +31872,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1348), 3, + STATE(1518), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym__index_expression, + sym_slice, ACTIONS(311), 4, sym_integer, sym_true, @@ -31569,14 +31888,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, @@ -31594,7 +31913,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9380] = 24, + [9664] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31609,26 +31928,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, - STATE(645), 1, + ACTIONS(926), 1, + anon_sym_RBRACK, + 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(1608), 1, - sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, @@ -31636,7 +31955,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1417), 3, + STATE(1535), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -31652,14 +31971,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, @@ -31677,72 +31996,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9487] = 24, + [9771] = 18, 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 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, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(766), 1, sym_primary_expression, - STATE(1236), 1, - sym_expression, - STATE(1681), 1, - sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, + ACTIONS(272), 3, + anon_sym_DOT, + anon_sym_STAR, + anon_sym_SLASH, 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, + ACTIONS(928), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(311), 5, sym_integer, + sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(583), 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, + ACTIONS(303), 9, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31760,7 +32073,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9594] = 23, + [9866] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31775,23 +32088,25 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - STATE(645), 1, + ACTIONS(924), 1, + anon_sym_COLON, + ACTIONS(930), 1, + anon_sym_RBRACK, + 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(1246), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -31800,10 +32115,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1348), 3, + STATE(1535), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym__index_expression, + sym_slice, ACTIONS(311), 4, sym_integer, sym_true, @@ -31816,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, @@ -31841,39 +32156,41 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9698] = 23, + [9973] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, + ACTIONS(55), 1, + anon_sym_STAR_STAR, 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, - anon_sym_not, - ACTIONS(792), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - STATE(645), 1, + ACTIONS(768), 1, + anon_sym_not, + 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(1236), 1, + STATE(1321), 1, sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, @@ -31881,30 +32198,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1515), 3, + STATE(1539), 3, sym_list_splat, - sym__index_expression, - sym_slice, + 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, @@ -31922,71 +32239,71 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9802] = 24, + [10080] = 24, ACTIONS(3), 1, sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 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(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - 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(1246), 1, + STATE(779), 1, + sym_string, + STATE(1239), 1, sym_expression, - STATE(1632), 1, + STATE(1554), 1, sym_expression_list, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1518), 2, + STATE(1590), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(301), 3, + 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, @@ -32004,7 +32321,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9908] = 24, + [10186] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32021,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(1241), 1, + STATE(1265), 1, sym_expression, - STATE(1649), 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, @@ -32061,96 +32378,14 @@ static const uint16_t ts_small_parse_table[] = { 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, + 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, @@ -32168,7 +32403,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10120] = 24, + [10292] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32185,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(1238), 1, + STATE(1279), 1, sym_expression, - STATE(1621), 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, @@ -32225,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, @@ -32250,11 +32485,9 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10226] = 24, + [10398] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(268), 1, sym_identifier, ACTIONS(293), 1, @@ -32267,34 +32500,35 @@ static const uint16_t ts_small_parse_table[] = { 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, - anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(778), 1, + anon_sym_LPAREN, + 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(1237), 1, + STATE(1179), 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, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -32307,14 +32541,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 +32566,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10332] = 23, + [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,32 +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, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(920), 1, - anon_sym_RBRACE, - STATE(645), 1, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 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, @@ -32467,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, @@ -32492,7 +32729,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10538] = 23, + [10712] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32509,28 +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(922), 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, + STATE(1573), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -32547,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, @@ -32572,149 +32811,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10641] = 23, + [10818] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(622), 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, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(926), 1, - anon_sym_RBRACE, - STATE(645), 1, + 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(658), 1, + STATE(782), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1313), 1, + STATE(1120), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1301), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32732,7 +32891,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10847] = 23, + [10921] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -32745,30 +32904,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(838), 1, + ACTIONS(848), 1, anon_sym_STAR, - ACTIONS(840), 1, + ACTIONS(850), 1, anon_sym_STAR_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(1212), 1, + STATE(1219), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1317), 2, + STATE(1393), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(49), 3, @@ -32780,21 +32939,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, @@ -32812,7 +32971,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10950] = 23, + [11024] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32829,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(928), 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, @@ -32867,94 +33026,14 @@ static const uint16_t ts_small_parse_table[] = { 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_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(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32972,7 +33051,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11156] = 23, + [11127] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32989,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(930), 1, + 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, @@ -33027,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, @@ -33052,7 +33131,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11259] = 23, + [11230] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33069,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(932), 1, + 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, @@ -33107,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, @@ -33132,7 +33211,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11362] = 23, + [11333] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33149,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(934), 1, + 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, @@ -33187,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, @@ -33212,7 +33291,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11465] = 23, + [11436] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33229,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(936), 1, + 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, @@ -33267,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, @@ -33292,7 +33371,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11568] = 23, + [11539] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33309,26 +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(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(938), 1, + 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, @@ -33347,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, @@ -33372,7 +33451,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11671] = 23, + [11642] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33389,28 +33468,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, - anon_sym_STAR, - 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(1153), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1262), 2, - sym_list_splat, + STATE(1567), 2, sym_dictionary_splat, + sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -33427,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, @@ -33452,7 +33531,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11774] = 23, + [11745] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33469,26 +33548,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(940), 1, + ACTIONS(944), 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 +33586,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,9 +33611,11 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11877] = 23, + [11848] = 23, ACTIONS(3), 1, sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, ACTIONS(268), 1, sym_identifier, ACTIONS(293), 1, @@ -33547,29 +33628,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(768), 1, anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, + ACTIONS(946), 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(1201), 1, + STATE(1395), 1, sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1609), 1, - sym_type, ACTIONS(309), 2, sym_ellipsis, sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -33586,14 +33666,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, @@ -33611,9 +33691,11 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11979] = 23, + [11951] = 22, ACTIONS(3), 1, sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, ACTIONS(268), 1, sym_identifier, ACTIONS(293), 1, @@ -33626,29 +33708,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, - 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(1395), 1, sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1647), 1, - sym_type, ACTIONS(309), 2, sym_ellipsis, sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -33665,14 +33744,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, @@ -33690,23 +33769,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12081] = 9, + [12051] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(952), 1, anon_sym_else, - ACTIONS(948), 1, + ACTIONS(954), 1, anon_sym_except, - ACTIONS(950), 1, + ACTIONS(956), 1, anon_sym_finally, - STATE(479), 1, + STATE(480), 1, sym_else_clause, - STATE(520), 1, + STATE(554), 1, sym_finally_clause, - STATE(333), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(944), 13, + STATE(331), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(950), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -33720,7 +33799,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(942), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -33755,170 +33834,26 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [12155] = 23, + [12125] = 9, 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, + ACTIONS(954), 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, + ACTIONS(956), 1, anon_sym_finally, - ACTIONS(972), 1, - anon_sym_except, - STATE(478), 1, + STATE(484), 1, sym_else_clause, - STATE(607), 1, + STATE(572), 1, sym_finally_clause, - STATE(317), 2, + STATE(331), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(944), 13, + ACTIONS(960), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -33929,7 +33864,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(942), 34, + ACTIONS(958), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -33964,7 +33899,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [12405] = 22, + [12199] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -33979,28 +33914,29 @@ 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(976), 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(1256), 1, + STATE(1231), 1, sym_expression, + STATE(1333), 1, + sym_type, + STATE(1358), 1, + sym_list_splat, 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, @@ -34017,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, @@ -34042,263 +33978,147 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12505] = 9, + [12301] = 23, 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, + ACTIONS(53), 1, 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, + ACTIONS(71), 1, anon_sym_not, + ACTIONS(73), 1, 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, + ACTIONS(83), 1, sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ts_builtin_sym_end, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(579), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + 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(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, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, 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, + ACTIONS(363), 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, - [12727] = 23, + 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(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 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, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(968), 1, anon_sym_STAR, - STATE(645), 1, + 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(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, + STATE(1177), 1, sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1688), 1, - sym_type, - ACTIONS(309), 2, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34316,7 +34136,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12829] = 23, + [12505] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -34331,25 +34151,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1703), 1, + STATE(1643), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -34370,14 +34190,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, @@ -34395,23 +34215,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12931] = 9, + [12607] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(978), 1, anon_sym_else, - ACTIONS(970), 1, - anon_sym_finally, - ACTIONS(972), 1, + ACTIONS(980), 1, anon_sym_except, - STATE(484), 1, + ACTIONS(982), 1, + anon_sym_finally, + STATE(481), 1, sym_else_clause, - STATE(569), 1, + STATE(557), 1, sym_finally_clause, - STATE(317), 2, + STATE(315), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(980), 13, + ACTIONS(950), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -34425,7 +34245,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(982), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -34460,68 +34280,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13005] = 23, + [12681] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(984), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(986), 1, - anon_sym_COLON, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1203), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, sym_expression, - STATE(1548), 1, - sym_exception_list, - ACTIONS(650), 2, + STATE(1358), 1, + sym_list_splat, + STATE(1494), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34539,7 +34359,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13107] = 23, + [12783] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -34554,25 +34374,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1634), 1, + STATE(1715), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -34593,14 +34413,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, @@ -34618,23 +34438,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13209] = 9, + [12885] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(952), 1, anon_sym_else, - ACTIONS(950), 1, + ACTIONS(956), 1, anon_sym_finally, - ACTIONS(978), 1, + ACTIONS(984), 1, anon_sym_except, - STATE(466), 1, + STATE(484), 1, sym_else_clause, - STATE(534), 1, + STATE(572), 1, sym_finally_clause, - STATE(334), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(980), 13, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(960), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -34648,7 +34468,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(982), 34, + ACTIONS(958), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -34683,11 +34503,9 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13283] = 22, + [12959] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(268), 1, sym_identifier, ACTIONS(293), 1, @@ -34700,26 +34518,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(768), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(988), 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(1264), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, + ACTIONS(986), 2, + anon_sym_COMMA, + anon_sym_RBRACK, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -34736,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, @@ -34761,68 +34581,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13383] = 23, + [13059] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(990), 1, anon_sym_STAR, - STATE(645), 1, + ACTIONS(992), 1, + anon_sym_COLON, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, + STATE(1208), 1, sym_expression, - STATE(1325), 1, - sym_type, - STATE(1344), 1, - sym_list_splat, - ACTIONS(309), 2, + STATE(1547), 1, + sym_exception_list, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34840,7 +34660,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13485] = 22, + [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, @@ -34855,26 +34740,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(990), 1, + ACTIONS(998), 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(1223), 1, + STATE(1244), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(988), 2, + ACTIONS(996), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(301), 3, @@ -34893,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, @@ -34918,68 +34803,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13585] = 23, + [13335] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(992), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, anon_sym_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(694), 1, sym_string, - STATE(1243), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, sym_expression, - STATE(1392), 1, - sym_type, - STATE(1451), 1, + STATE(1358), 1, sym_list_splat, - ACTIONS(77), 2, + STATE(1630), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -34997,7 +34882,202 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13687] = 23, + [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, @@ -35012,25 +35092,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1389), 1, + STATE(1747), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -35051,14 +35131,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, @@ -35076,7 +35156,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13789] = 23, + [13761] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -35091,25 +35171,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1627), 1, + STATE(1642), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -35130,14 +35210,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, @@ -35155,7 +35235,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13891] = 23, + [13863] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -35170,25 +35250,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1629), 1, + STATE(1644), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -35209,14 +35289,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, @@ -35234,7 +35314,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13993] = 23, + [13965] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -35249,25 +35329,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(1344), 1, + STATE(1358), 1, sym_list_splat, - STATE(1633), 1, + STATE(1648), 1, sym_type, ACTIONS(309), 2, sym_ellipsis, @@ -35288,14 +35368,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, @@ -35313,65 +35393,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14095] = 21, + [14067] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(1240), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, sym_expression, - ACTIONS(77), 2, + STATE(1358), 1, + sym_list_splat, + STATE(1649), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(994), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -35389,65 +35472,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14192] = 21, + [14169] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - STATE(645), 1, + 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(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1276), 1, + STATE(1192), 1, sym_expression, - ACTIONS(309), 2, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(996), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35465,65 +35549,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14289] = 21, + [14268] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(594), 1, + ACTIONS(1002), 1, anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(789), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(790), 1, sym_string, - STATE(1240), 1, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, sym_expression, - ACTIONS(77), 2, + STATE(1478), 1, + sym_with_item, + STATE(1719), 1, + sym_with_clause, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(998), 2, - sym__newline, - anon_sym_SEMI, - 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, @@ -35541,7 +35626,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14386] = 21, + [14367] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -35554,26 +35639,26 @@ 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(1240), 1, + STATE(1278), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(1000), 2, + ACTIONS(1004), 2, sym__newline, anon_sym_SEMI, ACTIONS(49), 3, @@ -35585,21 +35670,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, @@ -35617,65 +35702,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14483] = 21, + [14464] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(970), 1, + anon_sym_COLON, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(789), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(790), 1, sym_string, - STATE(1240), 1, + STATE(791), 1, + sym_template_string, + STATE(1177), 1, sym_expression, - ACTIONS(77), 2, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(1002), 2, - sym__newline, - anon_sym_SEMI, - 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, @@ -35693,42 +35779,42 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14580] = 21, + [14563] = 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1261), 1, + STATE(1104), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1004), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(301), 3, + 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, @@ -35737,21 +35823,21 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -35769,42 +35855,43 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14677] = 21, + [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(602), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, + ACTIONS(782), 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(1097), 1, + STATE(1317), 1, sym_expression, + STATE(1566), 1, + sym_list_splat, 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, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -35813,21 +35900,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -35845,66 +35932,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14774] = 22, + [14759] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(964), 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(1006), 1, - anon_sym_RPAREN, - STATE(792), 1, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, sym_primary_expression, - STATE(793), 1, + STATE(790), 1, sym_string, - STATE(794), 1, + STATE(791), 1, sym_template_string, - STATE(1205), 1, + STATE(1192), 1, sym_expression, - STATE(1481), 1, + STATE(1478), 1, sym_with_item, - ACTIONS(650), 2, + STATE(1716), 1, + sym_with_clause, + 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, @@ -35922,143 +36009,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14873] = 22, + [14858] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 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(71), 1, anon_sym_not, - ACTIONS(962), 1, + ACTIONS(73), 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, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(1008), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - STATE(792), 1, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, sym_primary_expression, - STATE(793), 1, + STATE(779), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, + STATE(1278), 1, sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1651), 1, - sym_with_clause, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(1006), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36076,7 +36085,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15071] = 21, + [14955] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -36091,24 +36100,24 @@ 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(1320), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1010), 2, + ACTIONS(1008), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(301), 3, @@ -36127,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, @@ -36152,42 +36161,42 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15168] = 21, + [15052] = 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(602), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 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(704), 1, sym_primary_expression, - STATE(1092), 1, + STATE(1303), 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, + ACTIONS(1010), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -36196,21 +36205,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -36228,7 +36237,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15265] = 21, + [15149] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -36243,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(1165), 2, + STATE(1174), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(606), 3, @@ -36272,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, @@ -36304,65 +36313,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15362] = 21, + [15246] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + 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, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, sym_template_string, - STATE(726), 1, + STATE(773), 1, sym_primary_expression, - STATE(1092), 1, + STATE(779), 1, + sym_string, + STATE(1278), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1117), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 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(818), 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, @@ -36380,66 +36389,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15459] = 22, + [15343] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(958), 1, - anon_sym_COLON, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(792), 1, + 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(793), 1, + STATE(779), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(1210), 1, + STATE(1278), 1, sym_expression, - STATE(1562), 1, - sym_exception_list, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(1014), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36457,66 +36465,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15558] = 22, + [15440] = 21, 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(654), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(1012), 1, - anon_sym_RPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1205), 1, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, sym_expression, - STATE(1481), 1, - sym_with_item, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + 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(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36534,7 +36541,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15657] = 22, + [15537] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -36549,27 +36556,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, - 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(1282), 1, + STATE(1318), 1, sym_expression, - STATE(1549), 1, - sym_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, + ACTIONS(1016), 2, + anon_sym_COMMA, + anon_sym_RBRACK, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -36586,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, @@ -36611,65 +36617,220 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15756] = 21, + [15634] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, + 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(313), 1, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(315), 1, + 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(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, + 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, - ACTIONS(586), 1, + 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(752), 1, + 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, - STATE(645), 1, + 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(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1258), 1, + STATE(1192), 1, sym_expression, - ACTIONS(309), 2, + STATE(1478), 1, + sym_with_item, + STATE(1622), 1, + sym_with_clause, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(1014), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36687,7 +36848,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15853] = 21, + [15931] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -36702,24 +36863,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(1099), 1, + STATE(1097), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1172), 2, + STATE(1222), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(606), 3, @@ -36731,21 +36892,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,66 +36924,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15950] = 22, + [16028] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(1008), 1, - anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1205), 1, + STATE(705), 1, + sym_primary_expression, + STATE(1099), 1, sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1599), 1, - sym_with_clause, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + STATE(1205), 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(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36840,66 +37000,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [16049] = 22, + [16125] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(646), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(964), 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, + ACTIONS(1018), 1, + anon_sym_RPAREN, + STATE(789), 1, sym_primary_expression, - STATE(793), 1, + STATE(790), 1, sym_string, - STATE(794), 1, + STATE(791), 1, sym_template_string, - STATE(1205), 1, + STATE(1192), 1, sym_expression, - STATE(1477), 1, + STATE(1522), 1, sym_with_item, - STATE(1607), 1, - sym_with_clause, - 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), 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, @@ -36917,66 +37077,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [16148] = 22, + [16224] = 21, 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, + ACTIONS(268), 1, sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(1008), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1205), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1283), 1, sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1645), 1, - sym_with_clause, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(1020), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36994,13 +37153,13 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [16247] = 3, + [16321] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1018), 13, - sym__dedent, + ACTIONS(1022), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37011,7 +37170,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1016), 39, + ACTIONS(1024), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37051,20 +37210,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16307] = 8, + [16381] = 3, 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, + ACTIONS(1026), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -37078,7 +37227,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1022), 34, + ACTIONS(1028), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37092,12 +37241,17 @@ 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, 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, @@ -37113,20 +37267,72 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16377] = 8, + [16441] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + 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, - 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, + 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, @@ -37140,7 +37346,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1028), 34, + ACTIONS(1036), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37154,10 +37360,12 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -37175,23 +37383,18 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16447] = 8, + [16565] = 5, 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, + 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, @@ -37202,7 +37405,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1030), 34, + ACTIONS(1043), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37216,10 +37419,12 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -37237,168 +37442,13 @@ static const uint16_t ts_small_parse_table[] = { 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, + [16629] = 3, 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, + ACTIONS(1026), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37409,7 +37459,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1038), 36, + ACTIONS(1028), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37423,14 +37473,17 @@ 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, 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, @@ -37446,69 +37499,67 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16773] = 5, + [16689] = 3, 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, + ACTIONS(1050), 17, + anon_sym_as, + 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_EQ, 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_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_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_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16837] = 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_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(1052), 13, + ACTIONS(1054), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -37522,7 +37573,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1050), 39, + ACTIONS(1052), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37562,10 +37613,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16897] = 3, + [16809] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1018), 13, + 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, @@ -37579,7 +37640,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1016), 39, + ACTIONS(1058), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37593,17 +37654,12 @@ 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, 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, @@ -37619,13 +37675,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16957] = 3, + [16879] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1054), 13, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37636,7 +37702,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1056), 39, + ACTIONS(1062), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37650,17 +37716,12 @@ 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, 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, @@ -37676,13 +37737,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17017] = 3, + [16949] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1058), 13, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37693,7 +37764,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1060), 39, + ACTIONS(1068), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37707,17 +37778,12 @@ 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, 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, @@ -37733,10 +37799,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17077] = 3, + [17019] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1058), 13, + 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, @@ -37750,7 +37826,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1060), 39, + ACTIONS(1072), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37764,17 +37840,12 @@ 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, 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, @@ -37790,23 +37861,93 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17137] = 8, + [17089] = 21, 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, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37817,7 +37958,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1030), 34, + ACTIONS(1036), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37831,10 +37972,12 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -37852,77 +37995,10 @@ static const uint16_t ts_small_parse_table[] = { 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, + [17249] = 3, 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, + ACTIONS(1022), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -37936,7 +38012,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1066), 34, + ACTIONS(1024), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -37950,12 +38026,17 @@ 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, 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, @@ -37971,13 +38052,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17337] = 3, + [17309] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1054), 13, - sym__dedent, + ACTIONS(1079), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37988,7 +38069,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1056), 39, + ACTIONS(1081), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38028,9 +38109,19 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17397] = 3, + [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, @@ -38045,7 +38136,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1072), 39, + ACTIONS(1068), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38059,17 +38150,12 @@ 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, 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, @@ -38085,80 +38171,80 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17457] = 3, + [17439] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1076), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + 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_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_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_COLON, + anon_sym_elif, anon_sym_else, anon_sym_async, anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + 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_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, + 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(946), 1, + ACTIONS(978), 1, anon_sym_else, - ACTIONS(1034), 1, + ACTIONS(1060), 1, anon_sym_elif, - STATE(374), 1, + STATE(319), 1, aux_sym_if_statement_repeat1, - STATE(469), 1, + STATE(473), 1, sym_elif_clause, - STATE(527), 1, + STATE(521), 1, sym_else_clause, - ACTIONS(1020), 13, - sym__dedent, + ACTIONS(1074), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -38169,7 +38255,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1022), 34, + ACTIONS(1072), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38204,20 +38290,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17587] = 8, + [17569] = 3, 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, + ACTIONS(1079), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -38231,7 +38307,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1028), 34, + ACTIONS(1081), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38245,12 +38321,17 @@ 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, 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, @@ -38266,23 +38347,18 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17657] = 8, + [17629] = 5, 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, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -38293,7 +38369,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1066), 34, + ACTIONS(1043), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38307,10 +38383,12 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -38328,13 +38406,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17727] = 3, + [17693] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1070), 13, - sym__dedent, + 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, @@ -38345,7 +38433,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1072), 39, + ACTIONS(1062), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38359,17 +38447,12 @@ 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, 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, @@ -38385,15 +38468,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17787] = 5, + [17763] = 3, 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, + ACTIONS(1088), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -38407,7 +38485,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1038), 36, + ACTIONS(1086), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38421,14 +38499,17 @@ 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, 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, @@ -38444,18 +38525,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17851] = 5, + [17823] = 3, 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, + ACTIONS(1088), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -38466,7 +38542,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1045), 36, + ACTIONS(1086), 39, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38480,14 +38556,17 @@ 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, 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, @@ -38503,64 +38582,64 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17915] = 21, + [17883] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(964), 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, - 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(1209), 1, sym_expression, - STATE(1550), 1, + STATE(1551), 1, sym_exception_list, - 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), 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,13 +38657,98 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18011] = 3, + [17979] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1052), 13, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -38595,7 +38759,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1050), 39, + ACTIONS(1058), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -38609,17 +38773,12 @@ 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, 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, @@ -38635,62 +38794,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [18071] = 20, + [18145] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1155), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1069), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -38708,7 +38867,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18164] = 20, + [18238] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -38721,21 +38880,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(1225), 1, + STATE(1112), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -38749,21 +38908,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, @@ -38781,7 +38940,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18257] = 20, + [18331] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -38794,21 +38953,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(1147), 1, + STATE(1241), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -38822,21 +38981,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, @@ -38854,62 +39013,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18350] = 20, + [18424] = 20, 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(1089), 1, + STATE(779), 1, + sym_string, + STATE(1295), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -38927,62 +39086,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18443] = 20, + [18517] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1270), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1072), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -39000,38 +39159,41 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18536] = 20, + [18610] = 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, + 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(1090), 1, + sym_identifier, + ACTIONS(1094), 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(1069), 1, + 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, @@ -39041,25 +39203,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(1092), 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), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -39073,7 +39233,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18629] = 20, + [18705] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -39088,19 +39248,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(1094), 1, + STATE(1268), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -39121,14 +39281,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, @@ -39146,62 +39306,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18722] = 20, + [18798] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(1265), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1386), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -39219,62 +39379,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18815] = 20, + [18891] = 20, 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(1074), 1, + STATE(779), 1, + sym_string, + STATE(1123), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -39292,62 +39452,125 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18908] = 20, + [18984] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + 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, - ACTIONS(622), 1, + anon_sym_if, + anon_sym_in, anon_sym_LBRACK, - ACTIONS(624), 1, + 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(630), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1119), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1331), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39365,39 +39588,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19001] = 20, + [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(602), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - 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, + STATE(704), 1, sym_primary_expression, - STATE(1180), 1, + STATE(1125), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -39406,21 +39629,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -39438,62 +39661,121 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19094] = 20, + [19243] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + 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, - ACTIONS(305), 1, + 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, - ACTIONS(313), 1, + anon_sym_yield, + sym_integer, + sym_identifier, anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, + sym_true, + sym_false, + sym_none, + [19308] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + 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, - STATE(645), 1, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1337), 1, + STATE(1214), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39511,7 +39793,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19187] = 20, + [19401] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -39524,21 +39806,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(1255), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -39552,21 +39834,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 +39866,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19280] = 20, + [19494] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -39599,19 +39881,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(1263), 1, + STATE(1085), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -39632,14 +39914,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, @@ -39657,7 +39939,80 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19373] = 20, + [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, @@ -39672,19 +40027,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(1275), 1, + STATE(1088), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -39705,14 +40060,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, @@ -39730,62 +40085,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19466] = 20, + [19773] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1182), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1171), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -39803,7 +40158,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19559] = 20, + [19866] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -39816,21 +40171,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(1268), 1, + STATE(1121), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -39844,21 +40199,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, @@ -39876,7 +40231,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19652] = 20, + [19959] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -39891,19 +40246,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(1364), 1, + STATE(1096), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -39924,14 +40279,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, @@ -39949,7 +40304,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19745] = 20, + [20052] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -39964,19 +40319,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(1339), 1, + STATE(1071), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -39997,14 +40352,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, @@ -40022,62 +40377,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19838] = 20, + [20145] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1194), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1089), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40095,62 +40450,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19931] = 20, + [20238] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1197), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1267), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40168,62 +40523,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20024] = 20, + [20331] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1198), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1297), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40241,62 +40596,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20117] = 20, + [20424] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(1240), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1298), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -40314,62 +40669,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20210] = 20, + [20517] = 20, 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(1309), 1, + STATE(779), 1, + sym_string, + STATE(1313), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -40387,62 +40742,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20303] = 20, + [20610] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(792), 1, + 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(793), 1, + STATE(779), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(1200), 1, + STATE(1118), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40460,62 +40815,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20396] = 20, + [20703] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(952), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(792), 1, + 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(793), 1, + STATE(779), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(1178), 1, + STATE(1316), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40533,62 +40888,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20489] = 20, + [20796] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1185), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1081), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40606,100 +40961,38 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20582] = 6, + [20889] = 20, 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, + ACTIONS(268), 1, 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(313), 1, + anon_sym_await, ACTIONS(315), 1, 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(1091), 1, - sym_identifier, - ACTIONS(1095), 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(704), 1, sym_primary_expression, - STATE(1094), 1, + STATE(1076), 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, @@ -40709,23 +41002,25 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(1093), 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), 15, + STATE(720), 17, sym_binary_operator, sym_unary_operator, + sym_attribute, + sym_subscript, sym_call, sym_list, sym_set, @@ -40739,62 +41034,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20742] = 20, + [20982] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(763), 1, + 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(766), 1, + STATE(779), 1, sym_string, - STATE(776), 1, - sym_template_string, - STATE(1120), 1, + STATE(1115), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40812,7 +41107,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20835] = 20, + [21075] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -40825,7 +41120,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, @@ -40833,13 +41128,13 @@ static const uint16_t ts_small_parse_table[] = { 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(1121), 1, + STATE(1152), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, @@ -40853,21 +41148,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, @@ -40885,62 +41180,135 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20928] = 20, + [21168] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(763), 1, + 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(766), 1, + 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(776), 1, + STATE(698), 1, sym_template_string, - STATE(1122), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1038), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40958,62 +41326,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21021] = 20, + [21354] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(760), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(762), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(763), 1, + STATE(789), 1, sym_primary_expression, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(1123), 1, + STATE(1182), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41031,7 +41399,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21114] = 20, + [21447] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -41044,7 +41412,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, @@ -41052,13 +41420,13 @@ static const uint16_t ts_small_parse_table[] = { 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(1124), 1, + STATE(1159), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, @@ -41072,21 +41440,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, @@ -41104,62 +41472,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21207] = 20, + [21540] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1078), 1, + STATE(1189), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41177,62 +41545,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21300] = 20, + [21633] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1229), 1, + STATE(1190), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41250,62 +41618,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21393] = 20, + [21726] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(760), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(762), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(763), 1, + STATE(789), 1, sym_primary_expression, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(1125), 1, + STATE(1201), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41323,121 +41691,62 @@ static const uint16_t ts_small_parse_table[] = { 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, + [21819] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(760), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(762), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(763), 1, + STATE(789), 1, sym_primary_expression, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(1143), 1, + STATE(1188), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41455,62 +41764,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21644] = 20, + [21912] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1031), 1, + STATE(1197), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41528,62 +41837,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21737] = 20, + [22005] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(780), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(781), 1, sym_string, - STATE(1366), 1, + STATE(782), 1, + sym_template_string, + STATE(1162), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41601,7 +41910,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21830] = 20, + [22098] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -41614,21 +41923,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(1274), 1, + STATE(1161), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -41642,21 +41951,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, @@ -41674,62 +41983,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21923] = 20, + [22191] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1244), 1, + STATE(1165), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41747,62 +42056,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22016] = 20, + [22284] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(780), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(781), 1, sym_string, - STATE(1145), 1, + STATE(782), 1, + sym_template_string, + STATE(1167), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41820,62 +42129,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22109] = 20, + [22377] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(645), 1, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1067), 1, + STATE(1168), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41893,62 +42202,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22202] = 20, + [22470] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(780), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(781), 1, sym_string, - STATE(1126), 1, + STATE(782), 1, + sym_template_string, + STATE(1170), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41966,62 +42275,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22295] = 20, + [22563] = 20, 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(1151), 1, + STATE(779), 1, + sym_string, + STATE(1326), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -42039,7 +42348,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22388] = 20, + [22656] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -42052,21 +42361,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(1142), 1, + STATE(1247), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -42080,21 +42389,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, @@ -42112,62 +42421,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22481] = 20, + [22749] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(645), 1, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1157), 1, + STATE(1169), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42185,62 +42494,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22574] = 20, + [22842] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(645), 1, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1072), 1, + STATE(1233), 1, sym_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), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42258,39 +42567,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22667] = 20, + [22935] = 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1196), 1, + STATE(1238), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -42299,21 +42608,21 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -42331,7 +42640,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22760] = 20, + [23028] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -42348,17 +42657,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(816), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(816), 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(1073), 1, + STATE(1038), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -42372,21 +42681,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, @@ -42404,62 +42713,121 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22853] = 20, + [23121] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + 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, - ACTIONS(646), 1, + anon_sym_DASH, + anon_sym_PLUS, 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, + 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, - ACTIONS(960), 1, + 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(962), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, anon_sym_await, - STATE(792), 1, + 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(793), 1, + STATE(779), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(1187), 1, + STATE(1278), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42477,62 +42845,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22946] = 20, + [23279] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1189), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1350), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42550,62 +42918,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23039] = 20, + [23372] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1141), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1098), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -42623,62 +42991,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23132] = 20, + [23465] = 20, 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(682), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(816), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, sym_template_string, - STATE(726), 1, + STATE(773), 1, sym_primary_expression, - STATE(1076), 1, + STATE(779), 1, + sym_string, + STATE(1129), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + 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(818), 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, @@ -42696,39 +43064,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23225] = 20, + [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(602), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - 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, + STATE(704), 1, sym_primary_expression, - STATE(1063), 1, + STATE(1109), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -42737,21 +43105,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -42769,62 +43137,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23318] = 20, + [23651] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1184), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1224), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -42842,62 +43210,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23411] = 20, + [23744] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(645), 1, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1082), 1, + STATE(1145), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42915,62 +43283,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23504] = 20, + [23837] = 20, 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(1312), 1, + STATE(779), 1, + sym_string, + STATE(1225), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -42988,7 +43356,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23597] = 20, + [23930] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -43005,21 +43373,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(816), 1, + ACTIONS(1112), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(1116), 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(1031), 1, + 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, @@ -43029,25 +43400,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(1114), 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), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -43061,62 +43430,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23690] = 20, + [24025] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1131), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1292), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43134,62 +43503,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23783] = 20, + [24118] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(313), 1, + anon_sym_await, + 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, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(1277), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1347), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(270), 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, @@ -43207,7 +43576,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23876] = 20, + [24211] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -43220,21 +43589,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(1167), 1, + STATE(1284), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -43248,21 +43617,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, @@ -43280,62 +43649,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23969] = 20, + [24304] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1106), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1363), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43353,39 +43722,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24062] = 20, + [24397] = 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1066), 1, + STATE(1091), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -43394,21 +43763,21 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -43426,7 +43795,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24155] = 20, + [24490] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -43439,21 +43808,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(1216), 1, + STATE(1319), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -43467,94 +43836,21 @@ static const uint16_t ts_small_parse_table[] = { 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, + 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, @@ -43572,7 +43868,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24341] = 20, + [24583] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -43581,30 +43877,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(734), 1, anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, + ACTIONS(736), 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(775), 1, sym_primary_expression, - STATE(1065), 1, + STATE(1153), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -43613,21 +43909,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 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, @@ -43645,135 +43941,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24434] = 20, + [24676] = 20, 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(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, + ACTIONS(361), 1, sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, + ACTIONS(367), 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, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1080), 1, + STATE(779), 1, + sym_string, + STATE(1139), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + 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, @@ -43791,7 +44014,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24620] = 20, + [24769] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -43800,30 +44023,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1158), 1, + STATE(1154), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -43839,14 +44062,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, @@ -43864,7 +44087,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24713] = 20, + [24862] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -43873,30 +44096,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1159), 1, + STATE(1155), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -43912,14 +44135,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, @@ -43937,7 +44160,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24806] = 20, + [24955] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -43946,30 +44169,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1160), 1, + STATE(1156), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -43985,14 +44208,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, @@ -44010,7 +44233,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24899] = 20, + [25048] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -44019,30 +44242,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1161), 1, + STATE(1157), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44058,14 +44281,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, @@ -44083,7 +44306,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24992] = 20, + [25141] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -44092,30 +44315,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1162), 1, + STATE(1163), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44131,14 +44354,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, @@ -44156,7 +44379,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25085] = 20, + [25234] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -44165,30 +44388,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1163), 1, + STATE(1166), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44204,14 +44427,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, @@ -44229,7 +44452,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25178] = 20, + [25327] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -44238,30 +44461,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(718), 1, sym_identifier, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - 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(1164), 1, + STATE(1038), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44277,14 +44500,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, @@ -44302,39 +44525,112 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25271] = 20, + [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(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(780), 1, + STATE(704), 1, sym_primary_expression, - STATE(1031), 1, + STATE(1353), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44343,21 +44639,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(720), 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, @@ -44375,62 +44671,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25364] = 20, + [25606] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(762), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(764), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(1188), 1, + STATE(705), 1, + sym_primary_expression, + STATE(1077), 1, sym_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44448,7 +44744,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25457] = 20, + [25699] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44463,19 +44759,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(1336), 1, + STATE(1361), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44496,14 +44792,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, @@ -44521,7 +44817,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25550] = 20, + [25792] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44536,19 +44832,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(1260), 1, + STATE(1199), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44569,14 +44865,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, @@ -44594,7 +44890,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25643] = 20, + [25885] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44609,19 +44905,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(1345), 1, + STATE(1387), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44642,14 +44938,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, @@ -44667,7 +44963,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25736] = 20, + [25978] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44682,19 +44978,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(1369), 1, + STATE(1367), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44715,14 +45011,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, @@ -44740,7 +45036,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25829] = 20, + [26071] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44755,19 +45051,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(1349), 1, + STATE(1370), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44788,14 +45084,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, @@ -44813,7 +45109,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25922] = 20, + [26164] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44828,19 +45124,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(1351), 1, + STATE(1371), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -44861,14 +45157,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, @@ -44886,39 +45182,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26015] = 20, + [26257] = 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1352), 1, + STATE(1073), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -44927,21 +45223,21 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -44959,7 +45255,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26108] = 20, + [26350] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -44974,19 +45270,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(1343), 1, + STATE(1359), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -45007,14 +45303,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, @@ -45032,39 +45328,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26201] = 20, + [26443] = 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1327), 1, + STATE(1083), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -45073,21 +45369,21 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -45105,7 +45401,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26294] = 20, + [26536] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -45120,19 +45416,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(1081), 1, + STATE(1325), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -45153,14 +45449,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,62 +45474,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26387] = 20, + [26629] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 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, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + 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(1146), 1, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1082), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(810), 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, @@ -45251,7 +45547,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26480] = 20, + [26722] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -45266,19 +45562,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(1355), 1, + STATE(1376), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -45299,14 +45595,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, @@ -45324,62 +45620,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26573] = 20, + [26815] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(654), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 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, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(1253), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1365), 1, sym_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45397,70 +45693,153 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26666] = 10, + [26908] = 20, 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, + 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_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_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, - anon_sym_if, - anon_sym_in, + ACTIONS(596), 1, anon_sym_LBRACK, + ACTIONS(768), 1, 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, + 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, @@ -45475,19 +45854,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(1356), 1, + STATE(1377), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -45508,14 +45887,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, @@ -45533,7 +45912,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26832] = 20, + [27187] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -45548,19 +45927,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(1357), 1, + STATE(1378), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -45581,14 +45960,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, @@ -45606,18 +45985,18 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26925] = 10, + [27280] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(277), 1, anon_sym_COMMA, ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(1106), 1, + ACTIONS(1118), 1, anon_sym_for, - ACTIONS(1108), 1, + ACTIONS(1120), 1, anon_sym_with, - ACTIONS(1110), 1, + ACTIONS(1122), 1, anon_sym_def, ACTIONS(285), 2, anon_sym_COLON, @@ -45669,62 +46048,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [26998] = 20, + [27353] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, + STATE(780), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(781), 1, sym_string, - STATE(1242), 1, + STATE(782), 1, + sym_template_string, + STATE(1164), 1, sym_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45742,10 +46121,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [27091] = 3, + [27446] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1114), 13, + ACTIONS(1126), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -45759,7 +46138,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1112), 37, + ACTIONS(1124), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -45797,15 +46176,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27149] = 5, + [27504] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1120), 1, + ACTIONS(1132), 1, anon_sym_case, - STATE(436), 2, + STATE(444), 2, sym_case_block, aux_sym_cases_repeat1, - ACTIONS(1118), 13, + ACTIONS(1130), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -45819,64 +46198,7 @@ static const uint16_t ts_small_parse_table[] = { 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, + ACTIONS(1128), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -45911,10 +46233,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27273] = 3, + [27566] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1129), 13, + ACTIONS(1134), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -45928,7 +46250,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1131), 37, + ACTIONS(1136), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -45966,10 +46288,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27331] = 3, + [27624] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1133), 13, + ACTIONS(1138), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -45983,7 +46305,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1135), 37, + ACTIONS(1140), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46021,13 +46343,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27389] = 3, + [27682] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1139), 13, - sym__dedent, + ACTIONS(1142), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46038,7 +46360,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1137), 37, + ACTIONS(1144), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46076,10 +46398,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27447] = 3, + [27740] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1129), 13, + 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, @@ -46093,7 +46420,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1131), 37, + ACTIONS(1146), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46107,13 +46434,10 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -46131,10 +46455,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27505] = 3, + [27802] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1141), 13, + 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, @@ -46148,7 +46477,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1143), 37, + ACTIONS(1146), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46162,68 +46491,10 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -46241,13 +46512,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27621] = 3, + [27864] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1147), 13, - sym__dedent, + ACTIONS(1156), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46258,7 +46529,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1145), 37, + ACTIONS(1158), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46296,10 +46567,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27679] = 3, + [27922] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1149), 13, + ACTIONS(1160), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46313,7 +46584,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1151), 37, + ACTIONS(1162), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46351,10 +46622,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27737] = 3, + [27980] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1155), 13, + ACTIONS(1166), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -46368,7 +46639,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1153), 37, + ACTIONS(1164), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46406,13 +46677,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27795] = 3, + [28038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1159), 13, - sym__dedent, + ACTIONS(1166), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46423,7 +46694,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1157), 37, + ACTIONS(1164), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46461,10 +46732,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27853] = 3, + [28096] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1155), 13, + ACTIONS(1168), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46478,7 +46749,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1153), 37, + ACTIONS(1170), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46516,10 +46787,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27911] = 3, + [28154] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1159), 13, + ACTIONS(1126), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46533,7 +46804,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1157), 37, + ACTIONS(1124), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46571,17 +46842,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27969] = 9, + [28212] = 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(1172), 1, + sym__string_start, + STATE(1411), 1, + sym_string, ACTIONS(285), 2, anon_sym_COLON, anon_sym_EQ, @@ -46632,74 +46903,17 @@ static const uint16_t ts_small_parse_table[] = { 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, + [28282] = 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(1174), 1, + anon_sym_import, + ACTIONS(1176), 1, + anon_sym_from, ACTIONS(285), 2, anon_sym_COLON, anon_sym_EQ, @@ -46750,10 +46964,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [28171] = 3, + [28352] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1141), 13, + ACTIONS(1160), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -46767,7 +46981,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1143), 37, + ACTIONS(1162), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46805,10 +47019,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28229] = 3, + [28410] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1147), 13, + ACTIONS(1178), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46822,7 +47036,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1145), 37, + ACTIONS(1180), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46860,10 +47074,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28287] = 3, + [28468] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1149), 13, + ACTIONS(1134), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -46877,7 +47091,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1151), 37, + ACTIONS(1136), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46915,10 +47129,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28345] = 3, + [28526] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1114), 13, + ACTIONS(1182), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46932,7 +47146,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1112), 37, + ACTIONS(1184), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -46970,13 +47184,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28403] = 3, + [28584] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1169), 13, + ACTIONS(1182), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46987,7 +47201,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1171), 37, + ACTIONS(1184), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47025,67 +47239,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28461] = 5, + [28642] = 3, 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, + ACTIONS(1178), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47099,7 +47256,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1171), 37, + ACTIONS(1180), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47137,13 +47294,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28581] = 3, + [28700] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1139), 13, + ACTIONS(1138), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47154,7 +47311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1137), 37, + ACTIONS(1140), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47192,10 +47349,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28639] = 3, + [28758] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1176), 13, + 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, @@ -47209,7 +47371,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1178), 36, + ACTIONS(1128), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47223,8 +47385,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, @@ -47246,17 +47406,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28696] = 5, + [28820] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(600), 1, - sym_else_clause, - ACTIONS(1180), 13, + ACTIONS(1142), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47267,7 +47423,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1182), 34, + ACTIONS(1144), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47281,10 +47437,13 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -47302,14 +47461,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28757] = 5, + [28878] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(519), 1, - sym_else_clause, - ACTIONS(1186), 13, + ACTIONS(1156), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47323,7 +47478,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1184), 34, + ACTIONS(1158), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47337,66 +47492,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_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_except, + anon_sym_finally, anon_sym_with, anon_sym_match, anon_sym_def, @@ -47414,17 +47516,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28879] = 5, + [28936] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(593), 1, - sym_else_clause, - ACTIONS(1192), 13, + ACTIONS(1168), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47435,7 +47533,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1194), 34, + ACTIONS(1170), 37, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47449,10 +47547,13 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -47470,17 +47571,158 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28940] = 5, + [28994] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_finally, - STATE(546), 1, - sym_finally_clause, - ACTIONS(1198), 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(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_pattern, + STATE(1742), 1, + sym__patterns, + 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, + [29089] = 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(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, @@ -47491,7 +47733,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1196), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47505,6 +47747,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, @@ -47526,10 +47770,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29001] = 3, + [29239] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1200), 13, + ACTIONS(978), 1, + anon_sym_else, + STATE(516), 1, + sym_else_clause, + ACTIONS(1198), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47543,7 +47791,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 36, + ACTIONS(1200), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47557,8 +47805,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, @@ -47580,13 +47826,201 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29058] = 3, + [29300] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1176), 13, - sym__dedent, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1202), 1, + sym_identifier, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + 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, + 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), 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, + [29367] = 6, + ACTIONS(3), 1, + sym_comment, + 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, @@ -47597,7 +48031,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1178), 36, + ACTIONS(1219), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47634,13 +48068,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29115] = 3, + [29580] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1206), 13, - sym__dedent, + ACTIONS(1221), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47651,7 +48085,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1204), 36, + ACTIONS(1223), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47688,17 +48122,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29172] = 5, + [29637] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(978), 1, anon_sym_else, - STATE(560), 1, + STATE(600), 1, sym_else_clause, - ACTIONS(1180), 13, - sym__dedent, + ACTIONS(1225), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47709,7 +48143,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1182), 34, + ACTIONS(1227), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47744,10 +48178,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29233] = 3, + [29698] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1206), 13, + ACTIONS(978), 1, + anon_sym_else, + STATE(538), 1, + sym_else_clause, + ACTIONS(1229), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47761,7 +48199,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1204), 36, + ACTIONS(1231), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47775,8 +48213,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, @@ -47798,17 +48234,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29290] = 5, + [29759] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(551), 1, - sym_else_clause, - ACTIONS(1192), 13, - sym__dedent, + 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, @@ -47819,7 +48255,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1194), 34, + ACTIONS(1235), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47854,17 +48290,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29351] = 5, + [29820] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(952), 1, anon_sym_else, - STATE(596), 1, + STATE(552), 1, sym_else_clause, - ACTIONS(1208), 13, + ACTIONS(1229), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47875,7 +48311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1210), 34, + ACTIONS(1231), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47910,14 +48346,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29412] = 5, + [29881] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(978), 1, anon_sym_else, - STATE(563), 1, + STATE(530), 1, sym_else_clause, - ACTIONS(1212), 13, + ACTIONS(1237), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47931,7 +48367,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1214), 34, + ACTIONS(1239), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -47966,14 +48402,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29473] = 5, + [29942] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(531), 1, - sym_else_clause, - ACTIONS(1212), 13, + ACTIONS(1221), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47987,7 +48419,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1214), 34, + ACTIONS(1223), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48001,6 +48433,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, @@ -48022,87 +48456,70 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29534] = 22, + [29999] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(956), 1, + anon_sym_finally, + STATE(571), 1, + sym_finally_clause, + ACTIONS(1243), 13, + sym__dedent, 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_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_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, + 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, - 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, + anon_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(966), 1, - anon_sym_else, - STATE(606), 1, - sym_else_clause, - ACTIONS(1186), 13, + 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, @@ -48116,7 +48533,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1184), 34, + ACTIONS(1241), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48151,17 +48568,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29690] = 5, + [30121] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(970), 1, - anon_sym_finally, - STATE(568), 1, - sym_finally_clause, - ACTIONS(1220), 13, + ACTIONS(952), 1, + anon_sym_else, + STATE(581), 1, + sym_else_clause, + ACTIONS(1225), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48172,7 +48589,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1222), 34, + ACTIONS(1227), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48207,17 +48624,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29751] = 5, + [30182] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_finally, - STATE(533), 1, - sym_finally_clause, - ACTIONS(1220), 13, - sym__dedent, + 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, @@ -48228,7 +48645,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1222), 34, + ACTIONS(1247), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48263,69 +48680,14 @@ static const uint16_t ts_small_parse_table[] = { 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(1224), 1, - sym_identifier, - ACTIONS(285), 2, - anon_sym_COLON, - anon_sym_EQ, - 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, - 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), 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, - [29879] = 3, + [30243] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1200), 13, + ACTIONS(956), 1, + anon_sym_finally, + STATE(584), 1, + sym_finally_clause, + ACTIONS(1233), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48339,7 +48701,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 36, + ACTIONS(1235), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48353,8 +48715,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, @@ -48376,86 +48736,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29936] = 21, + [30304] = 5, 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, + ACTIONS(952), 1, anon_sym_else, - STATE(555), 1, + STATE(588), 1, sym_else_clause, - ACTIONS(1208), 13, + ACTIONS(1245), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48469,7 +48757,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1210), 34, + ACTIONS(1247), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48504,17 +48792,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30090] = 5, + [30365] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(970), 1, - anon_sym_finally, - STATE(587), 1, - sym_finally_clause, - ACTIONS(1198), 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48525,7 +48813,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1249), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48560,86 +48848,10 @@ static const uint16_t ts_small_parse_table[] = { 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, + [30426] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(543), 1, - sym_else_clause, - ACTIONS(1188), 13, + ACTIONS(1194), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48653,7 +48865,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1190), 34, + ACTIONS(1196), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48667,6 +48879,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, @@ -48688,67 +48902,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30305] = 7, - 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, - 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, - [30369] = 3, + [30483] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1245), 13, + ACTIONS(952), 1, + anon_sym_else, + STATE(597), 1, + sym_else_clause, + ACTIONS(1198), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48762,7 +48923,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 35, + ACTIONS(1200), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48782,7 +48943,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,13 +48958,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30425] = 3, + [30544] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1247), 13, + ACTIONS(1217), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48815,7 +48975,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 35, + ACTIONS(1219), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48829,13 +48989,14 @@ 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, anon_sym_try, anon_sym_with, anon_sym_match, - anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -48851,70 +49012,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30481] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(580), 1, - anon_sym_COLON_EQ, - ACTIONS(582), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(577), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - 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, - 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, + [30601] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1253), 13, - sym__dedent, + 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, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48925,7 +49033,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1251), 35, + ACTIONS(1249), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48943,7 +49051,6 @@ 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, @@ -48961,209 +49068,14 @@ static const uint16_t ts_small_parse_table[] = { 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, + [30662] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1247), 13, + ACTIONS(952), 1, + anon_sym_else, + STATE(569), 1, + sym_else_clause, + ACTIONS(1237), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -49177,7 +49089,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 35, + ACTIONS(1239), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49197,7 +49109,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, @@ -49213,10 +49124,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30905] = 3, + [30723] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 16, + ACTIONS(1050), 16, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -49233,7 +49144,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1062), 32, + ACTIONS(1048), 32, sym__newline, anon_sym_DOT, anon_sym_from, @@ -49266,63 +49177,10 @@ static const uint16_t ts_small_parse_table[] = { 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, + [30779] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1268), 13, + ACTIONS(1253), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49336,7 +49194,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1270), 35, + ACTIONS(1255), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49354,9 +49212,9 @@ 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_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -49372,17 +49230,37 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31073] = 3, + [30835] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1076), 16, + 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_EQ, anon_sym_AT, anon_sym_SLASH, anon_sym_PERCENT, @@ -49392,14 +49270,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1074), 32, + ACTIONS(303), 16, 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, @@ -49411,24 +49286,82 @@ static const uint16_t ts_small_parse_table[] = { 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, + [30899] = 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(1504), 1, + sym_pattern, + STATE(1674), 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, + [30991] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1266), 13, + ACTIONS(1257), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49442,7 +49375,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1264), 35, + ACTIONS(1259), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49460,9 +49393,9 @@ 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_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -49478,84 +49411,66 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31185] = 21, + [31047] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(1253), 13, + sym__dedent, 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_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_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, + sym_ellipsis, + sym_float, + ACTIONS(1255), 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, - 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, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 13, - sym__dedent, + ACTIONS(1261), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -49566,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, @@ -49602,17 +49517,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31333] = 7, + [31159] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 1, + ACTIONS(1265), 1, anon_sym_COMMA, - ACTIONS(283), 1, + ACTIONS(1268), 1, anon_sym_COLON_EQ, - ACTIONS(285), 2, + ACTIONS(1270), 2, anon_sym_COLON, anon_sym_EQ, - ACTIONS(307), 13, + ACTIONS(1272), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -49626,7 +49541,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(272), 15, + ACTIONS(1209), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -49642,7 +49557,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 16, + ACTIONS(1204), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -49659,7 +49574,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [31397] = 21, + [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, @@ -49668,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(1469), 1, + STATE(1515), 1, sym_pattern, - STATE(1650), 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, @@ -49707,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, @@ -49730,13 +49698,119 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31489] = 3, + [31371] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1245), 13, + 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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -49747,7 +49821,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 +49857,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31545] = 3, + [31539] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1268), 13, + ACTIONS(1261), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -49800,7 +49874,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1270), 35, + ACTIONS(1263), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49836,13 +49910,84 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31601] = 3, + [31595] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1253), 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(1531), 1, + sym_pattern, + STATE(1751), 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, + [31687] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1284), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -49853,7 +49998,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1251), 35, + ACTIONS(1282), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49871,9 +50016,9 @@ 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_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -49889,10 +50034,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31657] = 3, + [31743] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 13, + ACTIONS(1284), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49906,7 +50051,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1272), 35, + ACTIONS(1282), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49942,7 +50087,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31713] = 21, + [31799] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -49951,37 +50096,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(1405), 1, sym_pattern, - STATE(1727), 1, + STATE(1718), 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 +50135,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 +50158,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31805] = 21, + [31891] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -50022,37 +50167,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(1532), 1, sym_pattern, - STATE(1730), 1, + STATE(1678), 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 +50206,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,13 +50229,13 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31897] = 3, + [31983] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1278), 13, - sym__dedent, + ACTIONS(1276), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50101,7 +50246,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1276), 34, + ACTIONS(1274), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50121,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, @@ -50136,13 +50282,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31952] = 3, + [32039] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1282), 13, - sym__dedent, + ACTIONS(1280), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50153,7 +50299,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1280), 34, + ACTIONS(1278), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50171,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, @@ -50188,65 +50335,84 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32007] = 3, + [32095] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1286), 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, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(706), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + 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(1284), 34, + 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_import, - anon_sym_from, - anon_sym_STAR, anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, anon_sym_exec, anon_sym_type, - anon_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, + 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, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50257,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, @@ -50292,24 +50458,79 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32117] = 3, + [32242] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1292), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, + 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_LBRACK, - anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_TILDE, + 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, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1294), 34, + ACTIONS(1303), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50344,13 +50565,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32172] = 3, + [32358] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1298), 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, @@ -50361,7 +50582,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1296), 34, + ACTIONS(1307), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50396,10 +50617,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32227] = 3, + [32413] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1300), 13, + ACTIONS(1309), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50413,7 +50634,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1302), 34, + ACTIONS(1311), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50448,13 +50669,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32282] = 3, + [32468] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1306), 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, @@ -50465,7 +50686,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1304), 34, + ACTIONS(1315), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50500,13 +50721,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32337] = 3, + [32523] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1310), 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, @@ -50517,7 +50738,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1308), 34, + ACTIONS(1319), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50552,13 +50773,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32392] = 3, + [32578] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1220), 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, @@ -50569,7 +50790,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1222), 34, + ACTIONS(1323), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50604,13 +50825,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32447] = 3, + [32633] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(980), 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, @@ -50621,7 +50842,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(982), 34, + ACTIONS(1327), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50656,13 +50877,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32502] = 3, + [32688] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1314), 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, @@ -50673,7 +50894,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1312), 34, + ACTIONS(1331), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50708,13 +50929,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32557] = 3, + [32743] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 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, @@ -50725,7 +51001,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1316), 34, + ACTIONS(1346), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50760,13 +51036,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32612] = 3, + [32859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1288), 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, @@ -50777,7 +51053,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1290), 34, + ACTIONS(1350), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50812,13 +51088,82 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32667] = 3, + [32914] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1292), 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, @@ -50829,7 +51174,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1294), 34, + ACTIONS(1354), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50864,13 +51209,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32722] = 3, + [33058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1300), 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, @@ -50881,7 +51226,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1302), 34, + ACTIONS(1358), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50916,13 +51261,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32777] = 3, + [33113] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1322), 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, @@ -50933,7 +51278,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1320), 34, + ACTIONS(1362), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50968,13 +51313,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32832] = 3, + [33168] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1326), 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, @@ -50985,7 +51330,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1324), 34, + ACTIONS(1366), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51020,13 +51365,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32887] = 3, + [33223] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1330), 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, @@ -51037,7 +51382,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1328), 34, + ACTIONS(1370), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51072,13 +51417,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32942] = 3, + [33278] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1334), 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, @@ -51089,7 +51434,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1332), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51124,10 +51469,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32997] = 3, + [33333] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1338), 13, + ACTIONS(1374), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51141,7 +51486,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1336), 34, + ACTIONS(1372), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51176,13 +51521,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33052] = 3, + [33388] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1342), 13, - sym__dedent, + ACTIONS(1376), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51193,7 +51538,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1340), 34, + ACTIONS(1378), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51228,13 +51573,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33107] = 3, + [33443] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1346), 13, - sym__dedent, + ACTIONS(1380), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51245,7 +51590,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1344), 34, + ACTIONS(1382), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51280,13 +51625,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33162] = 3, + [33498] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1198), 13, - sym__dedent, + ACTIONS(1233), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51297,7 +51642,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1235), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51332,13 +51677,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33217] = 3, + [33553] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1350), 13, - sym__dedent, + ACTIONS(1384), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51349,7 +51694,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1348), 34, + ACTIONS(1386), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51384,13 +51729,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33272] = 3, + [33608] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1354), 13, - sym__dedent, + ACTIONS(1388), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51401,7 +51746,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1352), 34, + ACTIONS(1390), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51436,10 +51781,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33327] = 3, + [33663] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1358), 13, + ACTIONS(950), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51453,7 +51798,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1356), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51488,13 +51833,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33382] = 3, + [33718] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1362), 13, - sym__dedent, + ACTIONS(1392), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51505,7 +51850,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1360), 34, + ACTIONS(1394), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51540,13 +51885,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33437] = 3, + [33773] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1366), 13, - sym__dedent, + ACTIONS(1396), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51557,7 +51902,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1364), 34, + ACTIONS(1398), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51592,13 +51937,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33492] = 3, + [33828] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1370), 13, - sym__dedent, + ACTIONS(1400), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51609,7 +51954,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1368), 34, + ACTIONS(1402), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51644,10 +51989,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33547] = 3, + [33883] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1374), 13, + ACTIONS(1406), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51661,7 +52006,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1372), 34, + ACTIONS(1404), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51696,10 +52041,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33602] = 3, + [33938] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1378), 13, + ACTIONS(1410), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51713,7 +52058,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1376), 34, + ACTIONS(1408), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51748,10 +52093,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33657] = 3, + [33993] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1382), 13, + ACTIONS(1414), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51765,7 +52110,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1380), 34, + ACTIONS(1412), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51800,10 +52145,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33712] = 3, + [34048] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1322), 13, + ACTIONS(1416), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -51817,7 +52162,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1320), 34, + ACTIONS(1418), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51852,13 +52197,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33767] = 3, + [34103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1386), 13, - sym__dedent, + ACTIONS(1420), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51869,7 +52214,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1384), 34, + ACTIONS(1422), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51904,10 +52249,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33822] = 3, + [34158] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1390), 13, + ACTIONS(1356), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51921,7 +52266,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1388), 34, + ACTIONS(1358), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51956,13 +52301,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33877] = 3, + [34213] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1394), 13, - sym__dedent, + ACTIONS(1424), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51973,7 +52318,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1392), 34, + ACTIONS(1426), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52008,13 +52353,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33932] = 3, + [34268] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1326), 13, + ACTIONS(1364), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52025,7 +52370,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1324), 34, + ACTIONS(1366), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52060,10 +52405,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33987] = 3, + [34323] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1398), 13, + ACTIONS(1384), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52077,7 +52422,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1396), 34, + 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, @@ -52112,13 +52509,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34042] = 3, + [34433] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1400), 13, + ACTIONS(1243), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52129,7 +52526,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1402), 34, + ACTIONS(1241), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52164,13 +52561,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34097] = 3, + [34488] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1406), 13, - sym__dedent, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52216,10 +52613,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34152] = 3, + [34543] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1330), 13, + 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, + [34598] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1243), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -52233,7 +52682,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1328), 34, + ACTIONS(1241), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52268,13 +52717,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34207] = 3, + [34653] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1410), 13, - sym__dedent, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52320,10 +52769,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34262] = 3, + [34708] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1414), 13, + ACTIONS(1434), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52337,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, @@ -52372,10 +52821,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34317] = 3, + [34763] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1418), 13, + ACTIONS(1438), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52389,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, @@ -52424,13 +52873,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34372] = 3, + [34818] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1334), 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, @@ -52441,7 +52890,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1332), 34, + ACTIONS(1315), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52476,65 +52925,166 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34427] = 6, + [34873] = 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(1388), 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_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_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, + [34928] = 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), 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_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_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(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_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, + [35038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1433), 13, + ACTIONS(1321), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52548,7 +53098,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1431), 34, + ACTIONS(1323), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52583,13 +53133,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34543] = 3, + [35093] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1437), 13, - sym__dedent, + ACTIONS(1440), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52600,7 +53150,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1435), 34, + ACTIONS(1442), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52635,10 +53185,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34598] = 3, + [35148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1441), 13, + ACTIONS(1344), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52652,7 +53202,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1439), 34, + ACTIONS(1346), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52687,10 +53237,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34653] = 3, + [35203] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1445), 13, + ACTIONS(1348), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52704,7 +53254,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1443), 34, + ACTIONS(1350), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52739,10 +53289,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34708] = 3, + [35258] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1449), 13, + ACTIONS(1360), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52756,7 +53306,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1447), 34, + ACTIONS(1362), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52791,13 +53341,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34763] = 3, + [35313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1338), 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, @@ -52808,7 +53358,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1336), 34, + ACTIONS(1370), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52843,10 +53393,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34818] = 3, + [35368] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1453), 13, + ACTIONS(1376), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52860,7 +53410,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1451), 34, + ACTIONS(1378), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52895,10 +53445,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34873] = 3, + [35423] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1457), 13, + ACTIONS(1233), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52912,7 +53462,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1455), 34, + ACTIONS(1235), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52947,13 +53497,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34928] = 3, + [35478] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(944), 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, @@ -52964,7 +53514,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(942), 34, + ACTIONS(1394), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52999,13 +53549,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34983] = 3, + [35533] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1342), 13, + ACTIONS(1400), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53016,7 +53566,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1340), 34, + ACTIONS(1402), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53051,13 +53601,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35038] = 3, + [35588] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1346), 13, + ACTIONS(1416), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53068,7 +53618,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1344), 34, + ACTIONS(1418), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53103,13 +53653,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35093] = 3, + [35643] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1198), 13, + ACTIONS(1420), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53120,7 +53670,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1422), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53155,13 +53705,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35148] = 3, + [35698] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 13, + ACTIONS(1424), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53172,7 +53722,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1461), 34, + ACTIONS(1426), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53207,68 +53757,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35203] = 6, + [35753] = 3, 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, + ACTIONS(1440), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53279,7 +53774,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1348), 34, + ACTIONS(1442), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53314,13 +53809,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35319] = 3, + [35808] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1354), 13, + ACTIONS(1446), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53331,7 +53826,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1352), 34, + ACTIONS(1444), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53366,13 +53861,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35374] = 3, + [35863] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1474), 13, + ACTIONS(1450), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53383,7 +53878,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1476), 34, + ACTIONS(1448), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53418,13 +53913,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35429] = 3, + [35918] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1358), 13, + ACTIONS(1454), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53435,7 +53930,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1356), 34, + ACTIONS(1452), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53470,10 +53965,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35484] = 3, + [35973] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1362), 13, + ACTIONS(1446), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53487,7 +53982,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1360), 34, + ACTIONS(1444), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53522,13 +54017,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35539] = 3, + [36028] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1366), 13, + ACTIONS(1458), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53539,7 +54034,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1364), 34, + ACTIONS(1456), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53574,13 +54069,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35594] = 3, + [36083] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1282), 13, + ACTIONS(1462), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53591,7 +54086,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1280), 34, + ACTIONS(1460), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53626,13 +54121,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35649] = 3, + [36138] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1370), 13, + ACTIONS(1466), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53643,7 +54138,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1368), 34, + ACTIONS(1464), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53678,13 +54173,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35704] = 3, + [36193] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1374), 13, + ACTIONS(1470), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53695,7 +54190,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1372), 34, + ACTIONS(1468), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53730,13 +54225,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35759] = 3, + [36248] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1378), 13, + ACTIONS(1474), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53747,7 +54242,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1376), 34, + ACTIONS(1472), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53782,68 +54277,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35814] = 6, + [36303] = 3, 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, + ACTIONS(1352), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53854,7 +54294,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1380), 34, + ACTIONS(1354), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53889,13 +54329,82 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35930] = 3, + [36358] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1286), 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(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, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53906,7 +54415,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1284), 34, + ACTIONS(1382), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -53941,68 +54450,13 @@ static const uint16_t ts_small_parse_table[] = { 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, + [36502] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1386), 13, + ACTIONS(1396), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54013,7 +54467,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1384), 34, + ACTIONS(1398), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54048,13 +54502,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36101] = 3, + [36557] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1390), 13, + ACTIONS(1428), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54065,7 +54519,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1388), 34, + ACTIONS(1430), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54100,79 +54554,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36156] = 20, + [36612] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(1414), 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(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_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_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, + 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, - 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, + anon_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(1394), 13, + ACTIONS(1450), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54186,7 +54623,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1392), 34, + ACTIONS(1448), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54221,82 +54658,169 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36300] = 20, + [36722] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(1478), 13, + sym__dedent, 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_DASH, + anon_sym_PLUS, 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, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, + 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, + [36777] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1482), 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, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, + 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, - ACTIONS(694), 6, + [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, - 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, + anon_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(1278), 13, + ACTIONS(1305), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54307,7 +54831,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1276), 34, + ACTIONS(1307), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54342,13 +54866,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36444] = 3, + [36942] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1398), 13, + ACTIONS(1309), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54359,7 +54883,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1396), 34, + ACTIONS(1311), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54394,10 +54918,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36499] = 3, + [36997] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1406), 13, + ACTIONS(1454), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54411,7 +54935,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1404), 34, + ACTIONS(1452), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54446,10 +54970,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36554] = 3, + [37052] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1410), 13, + ACTIONS(1470), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54463,7 +54987,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1408), 34, + ACTIONS(1468), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54498,13 +55022,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36609] = 3, + [37107] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1414), 13, + ACTIONS(1325), 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 +55039,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1412), 34, + ACTIONS(1327), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54550,13 +55074,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36664] = 3, + [37162] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1418), 13, + ACTIONS(1329), 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 +55091,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1416), 34, + ACTIONS(1331), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54602,10 +55126,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36719] = 3, + [37217] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1433), 13, + ACTIONS(1434), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54619,7 +55143,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1431), 34, + ACTIONS(1432), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54654,10 +55178,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36774] = 3, + [37272] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1437), 13, + ACTIONS(1374), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54671,7 +55195,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1435), 34, + ACTIONS(1372), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54706,10 +55230,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36829] = 3, + [37327] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1298), 13, + ACTIONS(1478), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54723,7 +55247,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1296), 34, + ACTIONS(1476), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54758,10 +55282,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36884] = 3, + [37382] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1441), 13, + ACTIONS(1482), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54775,7 +55299,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1439), 34, + ACTIONS(1480), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54810,10 +55334,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36939] = 3, + [37437] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1445), 13, + ACTIONS(1288), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54827,7 +55351,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1443), 34, + ACTIONS(1286), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54862,10 +55386,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36994] = 3, + [37492] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1449), 13, + ACTIONS(1458), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54879,7 +55403,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1447), 34, + ACTIONS(1456), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54914,10 +55438,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37049] = 3, + [37547] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1306), 13, + ACTIONS(1462), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54931,7 +55455,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1304), 34, + ACTIONS(1460), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54966,10 +55490,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37104] = 3, + [37602] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1453), 13, + ACTIONS(1484), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54983,7 +55507,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1451), 34, + ACTIONS(1486), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55018,10 +55542,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37159] = 3, + [37657] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1457), 13, + ACTIONS(1474), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -55035,7 +55559,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1455), 34, + ACTIONS(1472), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55070,10 +55594,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37214] = 3, + [37712] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1310), 13, + ACTIONS(1466), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -55087,7 +55611,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1308), 34, + ACTIONS(1464), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55122,114 +55646,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37269] = 3, + [37767] = 6, 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, + 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_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_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_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(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_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_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_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, - [37379] = 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, + [37828] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1314), 13, + ACTIONS(1438), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -55243,7 +55718,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1312), 34, + ACTIONS(1436), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55278,10 +55753,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37434] = 3, + [37883] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1400), 13, + ACTIONS(1484), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -55295,7 +55770,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1402), 34, + ACTIONS(1486), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55330,215 +55805,117 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37489] = 3, + [37938] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(944), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + 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_DASH, - 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_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, - [37544] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1474), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, + 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_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, + 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(1318), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, + 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_DASH, - 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_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, - [37654] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, + 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_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, + 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,50 +55980,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37792] = 16, + [38145] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(1486), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + ACTIONS(1498), 1, anon_sym_not, - STATE(793), 1, - sym_string, - STATE(794), 1, + STATE(772), 1, sym_template_string, - STATE(838), 1, + STATE(779), 1, + sym_string, + STATE(798), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55664,50 +56041,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37869] = 16, + [38222] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(1488), 1, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + ACTIONS(1500), 1, anon_sym_not, - STATE(766), 1, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(809), 1, + STATE(821), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55725,50 +56102,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37946] = 16, + [38299] = 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(594), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - ACTIONS(1490), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(1502), 1, anon_sym_not, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(781), 1, sym_string, - STATE(818), 1, + STATE(782), 1, + sym_template_string, + STATE(810), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55786,50 +56163,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38023] = 16, + [38376] = 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, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, - ACTIONS(1492), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1504), 1, anon_sym_not, - STATE(645), 1, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(758), 1, + STATE(856), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 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, @@ -55847,7 +56224,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38100] = 16, + [38453] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -55862,13 +56239,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(610), 1, anon_sym_await, - ACTIONS(1494), 1, + ACTIONS(1506), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(748), 1, + STATE(764), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, @@ -55883,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, @@ -55908,7 +56285,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38177] = 16, + [38530] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -55917,24 +56294,24 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 1, + ACTIONS(600), 1, anon_sym_await, - ACTIONS(1496), 1, + ACTIONS(1508), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(805), 1, + STATE(757), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -55944,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, @@ -55969,48 +56346,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38254] = 15, + [38607] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(83), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(694), 1, sym_string, - STATE(824), 1, + STATE(698), 1, + sym_template_string, + STATE(745), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56028,107 +56405,97 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38328] = 15, + [38681] = 5, 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, + ACTIONS(1514), 1, sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, + STATE(627), 2, sym_template_string, - STATE(819), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 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(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, + 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, + [38735] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(628), 1, + ACTIONS(662), 1, anon_sym_await, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(820), 1, + STATE(833), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56146,48 +56513,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38476] = 15, + [38809] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(656), 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, + STATE(791), 1, sym_template_string, - STATE(856), 1, + STATE(864), 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, @@ -56205,7 +56572,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38550] = 15, + [38883] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -56220,11 +56587,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(804), 1, + STATE(813), 1, sym_primary_expression, ACTIONS(626), 2, sym_ellipsis, @@ -56246,7 +56613,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, @@ -56264,48 +56631,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38624] = 15, + [38957] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(628), 1, + ACTIONS(662), 1, anon_sym_await, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(822), 1, + STATE(863), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56323,52 +56690,54 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38698] = 15, + [39031] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(766), 1, + 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(776), 1, + STATE(698), 1, sym_template_string, - STATE(801), 1, + STATE(1017), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + STATE(860), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(311), 4, sym_integer, - sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(1492), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(720), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -56382,48 +56751,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38772] = 15, + [39109] = 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, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + 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(737), 1, + STATE(868), 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, @@ -56441,7 +56810,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38846] = 15, + [39183] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -56450,17 +56819,17 @@ 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(821), 1, + STATE(797), 1, sym_primary_expression, ACTIONS(77), 2, sym_ellipsis, @@ -56475,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, @@ -56500,48 +56869,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38920] = 15, + [39257] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(622), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(628), 1, + ACTIONS(662), 1, anon_sym_await, - ACTIONS(630), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(766), 1, + STATE(790), 1, sym_string, - STATE(776), 1, + STATE(791), 1, sym_template_string, - STATE(802), 1, + STATE(865), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56559,54 +56928,52 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38994] = 17, + [39331] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(1498), 1, - sym_identifier, - ACTIONS(1502), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(1013), 1, + STATE(814), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1004), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(612), 5, sym_integer, + sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(1500), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(949), 17, sym_binary_operator, sym_unary_operator, + sym_attribute, + sym_subscript, sym_call, sym_list, sym_set, @@ -56620,7 +56987,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39072] = 15, + [39405] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -56629,17 +56996,17 @@ 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(790), 1, + STATE(798), 1, sym_primary_expression, ACTIONS(77), 2, sym_ellipsis, @@ -56654,14 +57021,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, @@ -56679,48 +57046,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39146] = 15, + [39479] = 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(616), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(789), 1, + STATE(782), 1, + sym_template_string, + STATE(815), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56738,52 +57105,54 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39220] = 15, + [39553] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(83), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(1517), 1, + sym_identifier, + ACTIONS(1521), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(694), 1, sym_string, - STATE(791), 1, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + STATE(1013), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(311), 4, sym_integer, - sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(1519), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(720), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -56797,54 +57166,52 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39294] = 17, + [39631] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 1, sym__template_string_start, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(1478), 1, - sym_identifier, - ACTIONS(1484), 1, + ACTIONS(581), 1, anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(1013), 1, + STATE(779), 1, + sym_string, + STATE(801), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(859), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(79), 5, sym_integer, + sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(1480), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(950), 17, sym_binary_operator, sym_unary_operator, + sym_attribute, + sym_subscript, sym_call, sym_list, sym_set, @@ -56858,48 +57225,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39372] = 15, + [39705] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(656), 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, + STATE(791), 1, sym_template_string, - STATE(831), 1, + STATE(845), 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, @@ -56917,48 +57284,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39446] = 15, + [39779] = 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(616), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(798), 1, + STATE(782), 1, + sym_template_string, + STATE(804), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56976,48 +57343,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39520] = 15, + [39853] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, + 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(832), 1, + STATE(779), 1, + sym_string, + STATE(818), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57035,48 +57402,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39594] = 15, + [39927] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, + 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(838), 1, + STATE(779), 1, + sym_string, + STATE(796), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57094,48 +57461,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39668] = 15, + [40001] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(83), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(694), 1, sym_string, - STATE(817), 1, + STATE(698), 1, + sym_template_string, + STATE(751), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57153,48 +57520,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39742] = 15, + [40075] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, + 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(840), 1, + STATE(779), 1, + sym_string, + STATE(803), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57212,7 +57579,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39816] = 15, + [40149] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -57221,17 +57588,17 @@ 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(818), 1, + STATE(788), 1, sym_primary_expression, ACTIONS(77), 2, sym_ellipsis, @@ -57246,14 +57613,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, @@ -57271,7 +57638,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39890] = 15, + [40223] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -57280,17 +57647,17 @@ 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(823), 1, + STATE(800), 1, sym_primary_expression, ACTIONS(77), 2, sym_ellipsis, @@ -57305,14 +57672,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, @@ -57330,56 +57697,7 @@ static const uint16_t ts_small_parse_table[] = { 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, - 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, - [40018] = 15, + [40297] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57388,22 +57706,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(755), 1, + STATE(752), 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, @@ -57413,14 +57731,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,7 +57756,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40092] = 15, + [40371] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57447,22 +57765,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(756), 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, @@ -57472,14 +57790,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, @@ -57497,48 +57815,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40166] = 15, + [40445] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(758), 1, + STATE(816), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57556,48 +57874,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40240] = 15, + [40519] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(761), 1, + STATE(817), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57615,35 +57933,35 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40314] = 15, + [40593] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 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, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(762), 1, + STATE(779), 1, + sym_string, + STATE(806), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, @@ -57656,7 +57974,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57674,7 +57992,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40388] = 15, + [40667] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57683,22 +58001,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(743), 1, + STATE(742), 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, @@ -57708,14 +58026,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, @@ -57733,7 +58051,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40462] = 15, + [40741] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57742,22 +58060,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(739), 1, + STATE(743), 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, @@ -57767,14 +58085,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, @@ -57792,7 +58110,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40536] = 15, + [40815] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57801,22 +58119,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(742), 1, + STATE(744), 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, @@ -57826,14 +58144,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, @@ -57851,7 +58169,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40610] = 15, + [40889] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -57866,11 +58184,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(809), 1, + STATE(830), 1, sym_primary_expression, ACTIONS(626), 2, sym_ellipsis, @@ -57892,7 +58210,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,107 +58228,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40684] = 15, + [40963] = 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, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(745), 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, - [40758] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(666), 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(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(757), 1, + STATE(867), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(301), 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, @@ -58028,7 +58287,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40832] = 15, + [41037] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58037,22 +58296,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(746), 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 +58321,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,97 +58346,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40906] = 5, + [41111] = 15, 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, + ACTIONS(650), 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(656), 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, - [40960] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(83), 1, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(666), 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(790), 1, sym_string, - STATE(785), 1, + STATE(791), 1, + sym_template_string, + STATE(866), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58195,48 +58405,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41034] = 15, + [41185] = 15, 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, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(793), 1, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(855), 1, + STATE(819), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58254,48 +58464,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41108] = 15, + [41259] = 15, 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, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(793), 1, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(866), 1, + STATE(820), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58313,48 +58523,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41182] = 15, + [41333] = 15, 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, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(793), 1, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(833), 1, + STATE(821), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58372,48 +58582,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41256] = 15, + [41407] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(83), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(694), 1, sym_string, - STATE(797), 1, + STATE(698), 1, + sym_template_string, + STATE(823), 1, sym_primary_expression, - ACTIONS(77), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58431,48 +58641,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41330] = 15, + [41481] = 15, 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, + ACTIONS(315), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(793), 1, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(845), 1, + STATE(824), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58490,7 +58700,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41404] = 15, + [41555] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58499,22 +58709,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(746), 1, + STATE(825), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58524,14 +58734,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, @@ -58549,7 +58759,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41478] = 15, + [41629] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58558,22 +58768,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(747), 1, + STATE(826), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58583,6 +58793,65 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -58590,7 +58859,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58608,7 +58877,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41552] = 15, + [41777] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58623,11 +58892,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(610), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(748), 1, + STATE(740), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, @@ -58642,14 +58911,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, @@ -58667,7 +58936,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41626] = 15, + [41851] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58676,22 +58945,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(749), 1, + STATE(827), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58701,14 +58970,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, @@ -58726,7 +58995,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41700] = 15, + [41925] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58735,22 +59004,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(750), 1, + STATE(828), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58760,14 +59029,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, @@ -58785,7 +59054,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41774] = 15, + [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, @@ -58794,22 +59122,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(751), 1, + STATE(829), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58819,14 +59147,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, @@ -58844,7 +59172,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41848] = 15, + [42147] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58853,22 +59181,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(602), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(610), 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(753), 1, + STATE(755), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58878,14 +59206,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, @@ -58903,7 +59231,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41922] = 15, + [42221] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58918,11 +59246,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(610), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(754), 1, + STATE(741), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, @@ -58937,14 +59265,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, @@ -58962,48 +59290,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41996] = 15, + [42295] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(766), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(799), 1, + STATE(756), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59021,48 +59349,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42070] = 15, + [42369] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(632), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(766), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(776), 1, + STATE(698), 1, sym_template_string, - STATE(812), 1, + STATE(757), 1, sym_primary_expression, - ACTIONS(626), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(620), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(612), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(614), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59080,146 +59408,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42144] = 5, + [42443] = 15, ACTIONS(3), 1, sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, 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, + ACTIONS(585), 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(596), 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, - [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, + ACTIONS(600), 1, anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, + STATE(694), 1, sym_string, - STATE(794), 1, + STATE(698), 1, sym_template_string, - STATE(846), 1, + STATE(739), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59237,48 +59467,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42326] = 15, + [42517] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(666), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(803), 1, + STATE(811), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59296,7 +59526,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42400] = 15, + [42591] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59305,22 +59535,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(826), 1, + STATE(758), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59330,14 +59560,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, @@ -59355,7 +59585,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42474] = 15, + [42665] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59364,22 +59594,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(805), 1, + STATE(759), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59389,14 +59619,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, @@ -59414,7 +59644,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42548] = 15, + [42739] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59423,22 +59653,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(806), 1, + STATE(760), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59448,14 +59678,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, @@ -59473,7 +59703,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42622] = 15, + [42813] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59482,22 +59712,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(807), 1, + STATE(761), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59507,14 +59737,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, @@ -59532,48 +59762,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42696] = 15, + [42887] = 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, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(666), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + 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(808), 1, + STATE(862), 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, @@ -59591,7 +59821,56 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42770] = 15, + [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(1523), 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, + [43015] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59600,22 +59879,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(810), 1, + STATE(762), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59625,14 +59904,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, @@ -59650,7 +59929,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42844] = 15, + [43089] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59659,22 +59938,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(811), 1, + STATE(763), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59684,14 +59963,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, @@ -59709,66 +59988,7 @@ static const uint16_t ts_small_parse_table[] = { 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, + [43163] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59777,22 +59997,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(658), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(666), 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(813), 1, + STATE(765), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -59802,14 +60022,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, @@ -59827,48 +60047,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43066] = 15, + [43237] = 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, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(664), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(666), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(658), 1, + STATE(782), 1, sym_template_string, - STATE(814), 1, + STATE(812), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59886,94 +60106,84 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43140] = 15, + [43311] = 5, 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, + STATE(685), 2, sym_string, - STATE(658), 1, - sym_template_string, - STATE(825), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 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(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, + 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, + [43365] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 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, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(608), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(581), 1, anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(744), 1, + STATE(779), 1, + sym_string, + STATE(807), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, @@ -59986,7 +60196,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -60004,7 +60214,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43288] = 15, + [43439] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -60019,11 +60229,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(610), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(736), 1, + STATE(748), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, @@ -60038,14 +60248,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, @@ -60063,22 +60273,22 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43362] = 5, + [43513] = 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, + 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, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1512), 33, + ACTIONS(1534), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60112,22 +60322,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43416] = 5, + [43567] = 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, + 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(1519), 33, + ACTIONS(1204), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60161,7 +60371,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43470] = 15, + [43621] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -60176,11 +60386,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(816), 1, + STATE(810), 1, sym_primary_expression, ACTIONS(626), 2, sym_ellipsis, @@ -60202,7 +60412,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 +60430,107 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43544] = 15, + [43695] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(656), 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(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(793), 1, + STATE(790), 1, sym_string, - STATE(794), 1, + STATE(791), 1, sym_template_string, - STATE(841), 1, + STATE(844), 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, @@ -60279,18 +60548,22 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43618] = 3, + [43843] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 6, + 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(1526), 34, - sym__string_start, + ACTIONS(1204), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60324,18 +60597,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43666] = 3, + [43897] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1532), 6, + 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, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1530), 34, - sym__string_start, + ACTIONS(1538), 34, + sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60369,17 +60701,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43714] = 3, + [44019] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1536), 6, + ACTIONS(1544), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1534), 34, + ACTIONS(1542), 34, sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -60414,18 +60746,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43762] = 3, + [44067] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1540), 6, + ACTIONS(1548), 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, + ACTIONS(1546), 34, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60459,23 +60791,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43810] = 3, + [44115] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1425), 6, + ACTIONS(1552), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1420), 33, + ACTIONS(1550), 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, @@ -60501,19 +60836,139 @@ 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, - [43857] = 3, + [44163] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1544), 6, + 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(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, + 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_PERCENT, + anon_sym_SLASH_SLASH, + 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(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(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + 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, + 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_PERCENT, + anon_sym_SLASH_SLASH, + 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(1558), 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, + [44325] = 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(1542), 33, + ACTIONS(303), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60547,17 +61002,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43904] = 3, + [44372] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1548), 6, + ACTIONS(1614), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1546), 33, + ACTIONS(1612), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60591,17 +61046,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43951] = 3, + [44419] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1552), 6, + ACTIONS(1618), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1550), 33, + ACTIONS(1616), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60635,17 +61090,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43998] = 3, + [44466] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 6, + ACTIONS(1622), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 33, + ACTIONS(1620), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60679,17 +61134,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44045] = 3, + [44513] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 6, + ACTIONS(1626), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 33, + ACTIONS(1624), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60723,17 +61178,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44092] = 3, + [44560] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1560), 6, + ACTIONS(1630), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1558), 33, + ACTIONS(1628), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60767,17 +61222,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44139] = 3, + [44607] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(272), 6, + ACTIONS(1634), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 33, + ACTIONS(1632), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60811,17 +61266,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44186] = 3, + [44654] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 6, + ACTIONS(1638), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1562), 33, + ACTIONS(1636), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60855,17 +61310,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44233] = 3, + [44701] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 6, + ACTIONS(1642), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 33, + ACTIONS(1640), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60899,17 +61354,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44280] = 3, + [44748] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 6, + ACTIONS(1646), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1570), 33, + ACTIONS(1644), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60943,17 +61398,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44327] = 3, + [44795] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 6, + ACTIONS(1650), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 33, + ACTIONS(1648), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60987,17 +61442,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44374] = 3, + [44842] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 6, + ACTIONS(1654), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1574), 33, + ACTIONS(1652), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61031,17 +61486,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44421] = 3, + [44889] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 6, + ACTIONS(1658), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 33, + ACTIONS(1656), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61075,17 +61530,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44468] = 3, + [44936] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1584), 6, + ACTIONS(1662), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1582), 33, + ACTIONS(1660), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61119,17 +61574,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44515] = 3, + [44983] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 6, + ACTIONS(1209), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 33, + ACTIONS(1204), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61163,17 +61618,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44562] = 3, + [45030] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 6, + ACTIONS(1666), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1590), 33, + ACTIONS(1664), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61207,17 +61662,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44609] = 3, + [45077] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1596), 6, + ACTIONS(1670), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1594), 33, + ACTIONS(1668), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61251,17 +61706,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44656] = 3, + [45124] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1600), 6, + ACTIONS(1674), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1598), 33, + ACTIONS(1672), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61295,84 +61750,69 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44703] = 20, + [45171] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + 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, - ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1614), 1, + 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(1618), 1, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1620), 1, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, - ACTIONS(1622), 1, - anon_sym_EQ, - ACTIONS(1626), 1, + anon_sym_AT, anon_sym_not, - ACTIONS(1628), 1, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, 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, + anon_sym_is, + [45218] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1468), 6, + ACTIONS(1682), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1463), 33, + 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, @@ -61398,19 +61838,17 @@ 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, - [44831] = 3, + [45265] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 6, + ACTIONS(1686), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1636), 33, + ACTIONS(1684), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61444,17 +61882,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44878] = 3, + [45312] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 6, + ACTIONS(1690), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1640), 33, + ACTIONS(1688), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61488,17 +61926,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44925] = 3, + [45359] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1646), 6, + ACTIONS(1690), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1644), 33, + ACTIONS(1688), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61532,17 +61970,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44972] = 3, + [45406] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1650), 6, + ACTIONS(1694), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1648), 33, + ACTIONS(1692), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61576,17 +62014,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45019] = 3, + [45453] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1235), 6, + ACTIONS(1698), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 33, + ACTIONS(1696), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61620,78 +62058,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45066] = 20, + [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(1622), 1, + ACTIONS(1690), 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, - 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, + 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, - [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, + [45547] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1678), 6, + ACTIONS(1702), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1676), 33, + ACTIONS(1700), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61725,17 +62146,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45194] = 3, + [45594] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1682), 6, + ACTIONS(1702), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1680), 33, + ACTIONS(1700), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61769,17 +62190,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45241] = 3, + [45641] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 6, + ACTIONS(1706), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 33, + ACTIONS(1704), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61813,17 +62234,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45288] = 3, + [45688] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 6, + ACTIONS(1702), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 33, + ACTIONS(1700), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61857,25 +62278,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45335] = 3, + [45735] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1686), 6, + ACTIONS(1338), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1684), 33, + ACTIONS(1333), 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, @@ -61901,25 +62320,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45382] = 3, + anon_sym_COLON2, + sym_type_conversion, + [45782] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1690), 6, + ACTIONS(1295), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1688), 33, + ACTIONS(1290), 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, @@ -61945,17 +62364,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45429] = 3, + anon_sym_COLON2, + sym_type_conversion, + [45829] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 6, + ACTIONS(1710), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1692), 33, + ACTIONS(1708), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61989,136 +62410,98 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45476] = 3, + [45876] = 14, 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, + 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, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1570), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + 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, - 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, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1702), 5, - anon_sym_STAR, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, anon_sym_EQ, - anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 27, + ACTIONS(1712), 18, 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, + [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(1658), 1, + ACTIONS(1594), 1, anon_sym_PIPE, - ACTIONS(1662), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1668), 1, + ACTIONS(1604), 1, anon_sym_AMP, - ACTIONS(1670), 1, + ACTIONS(1606), 1, anon_sym_CARET, - ACTIONS(1652), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1654), 2, + ACTIONS(1590), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1660), 2, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1706), 3, + ACTIONS(1718), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1704), 17, + ACTIONS(1716), 17, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -62136,173 +62519,186 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45649] = 8, + [46014] = 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(1702), 5, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1722), 3, anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 27, + ACTIONS(1720), 17, 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, + [46084] = 14, 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(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(1519), 31, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1712), 18, 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_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, - [45755] = 13, + [46152] = 10, 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(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, + ACTIONS(1588), 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, + 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), 19, + ACTIONS(1712), 24, 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, 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, - [45821] = 8, + [46212] = 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(1717), 5, + 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,91 +62726,96 @@ 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, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, anon_sym_STAR, - anon_sym_EQ, 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(1715), 27, + ACTIONS(1712), 19, 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, - [45933] = 12, + [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(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, - 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, + ACTIONS(1714), 3, + anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 20, + 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, @@ -62430,33 +62831,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45997] = 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(1620), 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_EQ, 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, anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -62478,137 +62879,165 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46053] = 15, + [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(1658), 1, - anon_sym_PIPE, - ACTIONS(1662), 1, + ACTIONS(1598), 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, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1721), 3, + ACTIONS(1730), 5, anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1719), 17, + ACTIONS(1728), 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, - [46123] = 15, + [46510] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(664), 1, + sym__string_start, + STATE(753), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 31, anon_sym_DOT, - ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1614), 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, - ACTIONS(1618), 1, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1620), 1, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, - ACTIONS(1628), 1, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, - ACTIONS(1630), 1, anon_sym_CARET, - ACTIONS(1608), 2, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46560] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(666), 1, + sym__template_string_start, + STATE(754), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1536), 4, 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, + ACTIONS(1534), 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_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, - [46193] = 8, + [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(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(1714), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 27, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62636,35 +63065,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46249] = 11, + [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(1662), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1652), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1660), 2, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, + ACTIONS(1714), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 22, + ACTIONS(1712), 22, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62687,156 +63116,87 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46311] = 15, + [46728] = 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(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, + ACTIONS(1732), 1, + sym__string_start, + STATE(753), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 4, 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, + ACTIONS(1523), 31, 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_as, + anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, + 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, - [46449] = 10, + [46778] = 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(1652), 2, + 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, - 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, + 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_async, - anon_sym_for, + 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, @@ -62846,33 +63206,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46509] = 8, + [46828] = 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(1572), 1, anon_sym_STAR_STAR, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_as, + ACTIONS(1714), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 27, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, + anon_sym_COLON, + anon_sym_else, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -62894,42 +63254,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46565] = 5, + [46884] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1727), 1, - sym__string_start, - STATE(752), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 4, + 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(1714), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1512), 31, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1712), 22, 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, @@ -62939,98 +63305,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46615] = 13, + [46946] = 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(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1662), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1670), 1, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, anon_sym_CARET, - ACTIONS(1652), 2, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1654), 2, + ACTIONS(1562), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1660), 2, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, + ACTIONS(1740), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 19, + ACTIONS(1738), 17, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, - anon_sym_async, - anon_sym_for, + 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, - [46681] = 12, + [47016] = 10, 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(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1652), 2, + ACTIONS(1560), 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, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, + ACTIONS(1714), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 20, + ACTIONS(1712), 24, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, + 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, @@ -63038,33 +63403,34 @@ static const uint16_t ts_small_parse_table[] = { 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, - [46745] = 8, + [47076] = 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(1572), 1, anon_sym_STAR_STAR, - STATE(734), 2, + STATE(708), 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), 27, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -63092,38 +63458,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46801] = 11, + [47132] = 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(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1608), 2, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1616), 2, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + 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), 22, + ACTIONS(1712), 19, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_else, @@ -63135,107 +63505,102 @@ static const uint16_t ts_small_parse_table[] = { 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, + [47198] = 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(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1610), 2, + ACTIONS(1562), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1616), 2, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + 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(1706), 3, + ACTIONS(1714), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1704), 17, + 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, - [46933] = 15, + [47262] = 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(1614), 1, + ACTIONS(1566), 1, anon_sym_PIPE, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1620), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1628), 1, + ACTIONS(1580), 1, anon_sym_AMP, - ACTIONS(1630), 1, + ACTIONS(1582), 1, anon_sym_CARET, - ACTIONS(1608), 2, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1610), 2, + ACTIONS(1562), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1616), 2, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + 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(1725), 3, + ACTIONS(1718), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1723), 17, + ACTIONS(1716), 17, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -63253,139 +63618,105 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47003] = 5, + [47332] = 15, 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, + ACTIONS(1554), 1, anon_sym_DOT, + ACTIONS(1556), 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, + ACTIONS(1566), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1570), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1580), 1, anon_sym_AMP, + ACTIONS(1582), 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, - [47053] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(656), 1, - sym__template_string_start, - STATE(738), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 4, + 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(1508), 31, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1720), 17, 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, - [47103] = 14, + [47402] = 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(1620), 1, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1628), 1, + ACTIONS(1604), 1, anon_sym_AMP, - ACTIONS(1630), 1, + ACTIONS(1606), 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(1713), 3, - anon_sym_EQ, + ACTIONS(1740), 3, + anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 18, + ACTIONS(1738), 17, 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, @@ -63397,32 +63728,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47171] = 10, + [47472] = 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(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - 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, + ACTIONS(1730), 5, + anon_sym_STAR, anon_sym_EQ, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 24, + ACTIONS(1728), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -63435,9 +63761,12 @@ 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, @@ -63447,93 +63776,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47231] = 20, + [47528] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1622), 1, - anon_sym_EQ, - 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(1572), 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, - 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, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - 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(1606), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [47310] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(604), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 5, - anon_sym_as, + ACTIONS(1726), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 31, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1724), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, + 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, @@ -63549,90 +63824,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47357] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1622), 1, - anon_sym_EQ, - 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(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, - ACTIONS(1766), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - 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_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, + [47584] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(630), 1, - sym__string_start, - STATE(767), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1235), 5, + ACTIONS(1338), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + 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, @@ -63650,23 +63866,21 @@ 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, - [47485] = 5, + [47629] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(630), 1, + ACTIONS(1742), 1, sym__string_start, - STATE(770), 2, + STATE(768), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1506), 5, + ACTIONS(1525), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1504), 29, + ACTIONS(1523), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -63696,21 +63910,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [47534] = 5, + [47678] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(632), 1, + ACTIONS(1745), 1, sym__template_string_start, - STATE(771), 2, + STATE(769), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 5, + ACTIONS(1512), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1508), 29, + ACTIONS(1510), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -63740,21 +63954,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [47583] = 5, + [47727] = 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, + 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(1230), 29, + ACTIONS(1530), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -63784,22 +63998,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [47632] = 5, + [47776] = 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, + 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(1512), 29, + ACTIONS(1534), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -63809,7 +64025,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, @@ -63826,24 +64041,25 @@ 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, - [47681] = 5, + anon_sym_SEMI, + [47825] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1793), 1, + ACTIONS(85), 1, sym__template_string_start, STATE(771), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1521), 5, + ACTIONS(1209), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1519), 29, + ACTIONS(1204), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -63853,7 +64069,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, @@ -63870,54 +64085,70 @@ 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, - [47730] = 3, + anon_sym_SEMI, + [47874] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1425), 5, - anon_sym_STAR, + ACTIONS(1574), 1, anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 32, + ACTIONS(1748), 1, anon_sym_DOT, + ACTIONS(1750), 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_else, - anon_sym_in, + ACTIONS(1758), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1762), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - anon_sym_AT, + ACTIONS(1768), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + 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, - anon_sym_is, - [47775] = 4, + 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(580), 1, + ACTIONS(590), 1, anon_sym_COLON_EQ, ACTIONS(272), 6, anon_sym_STAR, @@ -63957,110 +64188,82 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47822] = 5, + [48000] = 19, 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, + ACTIONS(1554), 1, anon_sym_DOT, - anon_sym_from, + ACTIONS(1556), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1570), 1, anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - anon_sym_AT, + ACTIONS(1792), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1794), 1, anon_sym_AMP, + ACTIONS(1796), 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(1800), 1, 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, + STATE(1014), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1778), 2, 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, + ACTIONS(1780), 2, anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, + anon_sym_LT_LT, + ACTIONS(1786), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, + 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_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(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, - anon_sym_is, - anon_sym_SEMI, - [47920] = 5, + 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(632), 1, - sym__template_string_start, - STATE(768), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1235), 5, + 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(1230), 29, + ACTIONS(1523), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -64070,7 +64273,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, @@ -64087,34 +64289,34 @@ 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, - [47969] = 3, + anon_sym_SEMI, + [48126] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1468), 5, + 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(1463), 32, + ACTIONS(1510), 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_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, @@ -64131,33 +64333,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48014] = 5, + anon_sym_SEMI, + [48175] = 4, 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, + 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(1519), 29, - sym__newline, + ACTIONS(1204), 30, anon_sym_DOT, - anon_sym_from, 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, @@ -64174,22 +64377,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [48063] = 5, + [48222] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1799), 1, + ACTIONS(83), 1, sym__string_start, - STATE(779), 2, + STATE(770), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 5, + ACTIONS(1209), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1512), 29, + ACTIONS(1204), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -64219,90 +64421,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [48112] = 19, + [48271] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1574), 1, + anon_sym_EQ, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1808), 1, + ACTIONS(1818), 1, anon_sym_PIPE, - ACTIONS(1812), 1, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1816), 1, + ACTIONS(1828), 1, anon_sym_not, - ACTIONS(1818), 1, + ACTIONS(1830), 1, anon_sym_AMP, - ACTIONS(1820), 1, + ACTIONS(1832), 1, anon_sym_CARET, - ACTIONS(1824), 1, + ACTIONS(1836), 1, anon_sym_is, - STATE(1006), 1, + STATE(1004), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1802), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1804), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1810), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1822), 2, + ACTIONS(1834), 2, anon_sym_LT, anon_sym_GT, - STATE(734), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + ACTIONS(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1806), 6, + 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(1606), 8, + ACTIONS(1558), 7, 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, + anon_sym_COLON2, + sym_type_conversion, + [48350] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1258), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 6, + ACTIONS(630), 1, + sym__string_start, + STATE(784), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 5, anon_sym_STAR, - anon_sym_COLON, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 30, + ACTIONS(1204), 29, 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, @@ -64320,24 +64522,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48236] = 5, + anon_sym_COLON2, + sym_type_conversion, + [48399] = 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, + 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(1504), 29, - sym__newline, + ACTIONS(1204), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -64347,6 +64549,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, @@ -64363,27 +64566,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [48285] = 4, + anon_sym_COLON2, + sym_type_conversion, + [48448] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1826), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 5, - anon_sym_as, + ACTIONS(1295), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 31, + 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_async, - anon_sym_for, + anon_sym_COLON, + anon_sym_else, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -64407,37 +64610,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48332] = 8, + [48493] = 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(1812), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 4, + 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(1715), 26, + ACTIONS(1530), 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, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -64453,80 +64652,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48386] = 13, + anon_sym_COLON2, + sym_type_conversion, + [48542] = 5, 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, + 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_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_SLASH, 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, + ACTIONS(1534), 29, 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, @@ -64534,6 +64678,9 @@ 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, @@ -64549,25 +64696,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [48504] = 3, + anon_sym_COLON2, + sym_type_conversion, + [48591] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1532), 4, + 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(1530), 32, - sym__string_start, + ACTIONS(1204), 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_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -64591,24 +64741,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48548] = 3, + [48638] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1536), 4, + 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(1534), 32, - sym__template_string_start, + ACTIONS(303), 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_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -64632,97 +64784,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48592] = 15, + [48685] = 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(1770), 1, + ACTIONS(1758), 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, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1782), 1, + ACTIONS(1770), 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(1706), 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(1704), 15, + ACTIONS(1720), 15, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -64738,102 +64837,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [48728] = 8, + [48753] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1840), 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, + ACTIONS(1842), 1, anon_sym_LPAREN, - ACTIONS(1838), 1, + ACTIONS(1850), 1, anon_sym_PIPE, - ACTIONS(1842), 1, + ACTIONS(1854), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1856), 1, anon_sym_STAR_STAR, - ACTIONS(1848), 1, + ACTIONS(1860), 1, anon_sym_not, - ACTIONS(1850), 1, + ACTIONS(1862), 1, anon_sym_AMP, - ACTIONS(1852), 1, + ACTIONS(1864), 1, anon_sym_CARET, - ACTIONS(1856), 1, + 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,15 +65021,15 @@ 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(1540), 4, + ACTIONS(1544), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1538), 32, + ACTIONS(1542), 32, sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -65009,36 +65062,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49042] = 8, + [49013] = 3, 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, + ACTIONS(1552), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, - sym__newline, - anon_sym_from, + 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, @@ -65054,37 +65103,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [49096] = 8, + [49057] = 3, 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, + ACTIONS(1540), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, - sym__newline, - anon_sym_from, + 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, @@ -65100,28 +65144,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [49150] = 8, + [49101] = 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, - STATE(903), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1702), 5, + ACTIONS(1714), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 25, + ACTIONS(1712), 25, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -65129,7 +65174,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_RBRACE, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -65145,89 +65189,46 @@ 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, - [49204] = 8, + anon_sym_SEMI, + [49155] = 11, 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, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 5, + ACTIONS(1752), 2, 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, + ACTIONS(1760), 2, 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, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, + ACTIONS(1714), 3, anon_sym_EQ, - anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 20, + 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_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, @@ -65237,88 +65238,90 @@ 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, - [49312] = 11, + anon_sym_SEMI, + [49215] = 15, 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(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1734), 2, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1742), 2, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + 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(1740), 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, + ACTIONS(1738), 15, + sym__newline, + anon_sym_from, 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, + anon_sym_SEMI, + [49283] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1812), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - STATE(734), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 4, + ACTIONS(1726), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 26, + ACTIONS(1724), 25, + sym__newline, + anon_sym_from, 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, @@ -65334,48 +65337,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49426] = 15, + anon_sym_SEMI, + [49337] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1730), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1732), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1740), 1, + ACTIONS(1758), 1, anon_sym_PIPE, - ACTIONS(1744), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1752), 1, + ACTIONS(1770), 1, anon_sym_AMP, - ACTIONS(1754), 1, + ACTIONS(1772), 1, anon_sym_CARET, - ACTIONS(1734), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - 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(1721), 3, + 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(1719), 15, + ACTIONS(1716), 15, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_in, - anon_sym_RBRACE, anon_sym_not, anon_sym_and, anon_sym_or, @@ -65385,52 +65390,49 @@ 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, - [49494] = 15, + anon_sym_SEMI, + [49405] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1818), 1, + ACTIONS(1770), 1, anon_sym_AMP, - ACTIONS(1820), 1, + ACTIONS(1772), 1, anon_sym_CARET, - ACTIONS(1725), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1804), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1810), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + 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(1723), 16, + ACTIONS(1712), 16, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_in, - anon_sym_RBRACE, + anon_sym_PIPE, anon_sym_not, anon_sym_and, anon_sym_or, @@ -65440,97 +65442,136 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49562] = 14, + anon_sym_SEMI, + [49471] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1812), 1, + ACTIONS(1764), 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, + ACTIONS(1752), 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, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + 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(1711), 17, + ACTIONS(1712), 22, + sym__newline, + anon_sym_from, 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_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, - [49628] = 10, + anon_sym_SEMI, + [49529] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1812), 1, + ACTIONS(1764), 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, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + 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, - ACTIONS(1711), 23, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_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_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, @@ -65540,32 +65581,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49686] = 8, + anon_sym_COLON2, + sym_type_conversion, + [49637] = 8, 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, - STATE(734), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 4, + ACTIONS(1726), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 26, + ACTIONS(1724), 25, 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, @@ -65586,197 +65627,186 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49740] = 15, + anon_sym_COLON2, + sym_type_conversion, + [49691] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1730), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1732), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1740), 1, - anon_sym_PIPE, - ACTIONS(1744), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, + ACTIONS(1772), 1, anon_sym_CARET, - ACTIONS(1734), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - 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(1725), 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(1723), 15, + ACTIONS(1712), 17, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_in, - anon_sym_RBRACE, + 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_COLON2, - sym_type_conversion, - [49808] = 13, + anon_sym_SEMI, + [49755] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1812), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1804), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1810), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + 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(1711), 18, + ACTIONS(1712), 18, + sym__newline, + anon_sym_from, 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, - [49872] = 12, + anon_sym_SEMI, + [49817] = 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(1812), 1, + ACTIONS(1788), 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, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 19, + ACTIONS(1726), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 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, - [49934] = 14, + [49871] = 11, 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(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(903), 2, + STATE(925), 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(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 16, + ACTIONS(1712), 20, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_in, anon_sym_PIPE, @@ -65784,6 +65814,9 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -65792,48 +65825,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50000] = 15, + [49931] = 15, 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, - anon_sym_LBRACK, - ACTIONS(1808), 1, + ACTIONS(1818), 1, anon_sym_PIPE, - ACTIONS(1812), 1, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1818), 1, + ACTIONS(1830), 1, anon_sym_AMP, - ACTIONS(1820), 1, + ACTIONS(1832), 1, anon_sym_CARET, - ACTIONS(1721), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1804), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - 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(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(1719), 16, + ACTIONS(1738), 15, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_in, anon_sym_RBRACE, anon_sym_not, @@ -65845,49 +65876,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50068] = 15, + anon_sym_COLON2, + sym_type_conversion, + [49999] = 14, 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(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1818), 1, + ACTIONS(1830), 1, anon_sym_AMP, - ACTIONS(1820), 1, + ACTIONS(1832), 1, anon_sym_CARET, - ACTIONS(1706), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1804), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - 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(1704), 16, + ACTIONS(1712), 16, 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, @@ -65898,32 +65928,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50136] = 10, + anon_sym_COLON2, + sym_type_conversion, + [50065] = 10, 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, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(903), 2, + STATE(925), 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(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 22, + ACTIONS(1712), 22, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -65946,27 +65978,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50194] = 8, + [50123] = 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, - STATE(903), 2, + STATE(925), 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, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -65992,151 +66024,152 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50248] = 11, + [50177] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1774), 1, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1764), 2, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1772), 2, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + STATE(925), 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(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 20, - sym__newline, - anon_sym_from, + ACTIONS(1712), 17, 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_SEMI, - [50308] = 15, + anon_sym_COLON2, + sym_type_conversion, + [50241] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1770), 1, - anon_sym_PIPE, - ACTIONS(1774), 1, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1782), 1, - anon_sym_AMP, - ACTIONS(1784), 1, - anon_sym_CARET, - ACTIONS(1764), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1766), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1772), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1725), 3, + ACTIONS(1714), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1723), 15, - sym__newline, - anon_sym_from, + 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_SEMI, - [50376] = 13, + anon_sym_COLON2, + sym_type_conversion, + [50303] = 15, 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(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1754), 1, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, anon_sym_CARET, - ACTIONS(1734), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1742), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(903), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1718), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1748), 3, + ACTIONS(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, + ACTIONS(1716), 15, 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, @@ -66145,48 +66178,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50440] = 12, + [50371] = 15, 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(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1734), 2, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, + ACTIONS(1814), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1742), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(903), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1722), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1748), 3, + ACTIONS(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 18, + ACTIONS(1720), 15, 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, @@ -66195,96 +66231,189 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50502] = 12, + [50439] = 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, - ACTIONS(1764), 2, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_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(1713), 3, - anon_sym_EQ, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1778), 3, + 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, - ACTIONS(1711), 18, - sym__newline, - anon_sym_from, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_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, + 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, - anon_sym_SEMI, - [50564] = 15, + [50607] = 15, 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(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1752), 1, + ACTIONS(1794), 1, anon_sym_AMP, - ACTIONS(1754), 1, + ACTIONS(1796), 1, anon_sym_CARET, - ACTIONS(1734), 2, + ACTIONS(1740), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, + ACTIONS(1780), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1742), 2, + ACTIONS(1786), 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, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1704), 15, + 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, @@ -66296,50 +66425,49 @@ 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, - [50632] = 14, + [50675] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1774), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1782), 1, + ACTIONS(1794), 1, anon_sym_AMP, - ACTIONS(1784), 1, + ACTIONS(1796), 1, anon_sym_CARET, - ACTIONS(1764), 2, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1766), 2, + ACTIONS(1780), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1772), 2, + ACTIONS(1786), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 16, - sym__newline, - anon_sym_from, + 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, @@ -66349,42 +66477,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [50698] = 10, + [50741] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1774), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1764), 2, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(900), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 22, - sym__newline, - anon_sym_from, + 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, @@ -66397,27 +66525,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [50756] = 8, + [50799] = 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(1812), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1702), 4, + ACTIONS(1714), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 26, + ACTIONS(1712), 26, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -66444,36 +66571,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50810] = 11, + [50853] = 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(1812), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1713), 2, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1714), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1810), 2, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 21, + ACTIONS(1712), 18, anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_async, @@ -66485,338 +66616,199 @@ static const uint16_t ts_small_parse_table[] = { 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, + [50917] = 12, 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(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, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 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(1786), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 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, - 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, + ACTIONS(1712), 19, 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, - [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, + [50979] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1830), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1842), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 4, - anon_sym_STAR, - anon_sym_SLASH, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1718), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, + 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_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_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, + [51047] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1830), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1842), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1713), 2, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1722), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1832), 2, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1840), 2, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(979), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1846), 3, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 20, - anon_sym_RPAREN, + ACTIONS(1720), 16, 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_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, - [51236] = 8, + [51115] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1830), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1842), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - STATE(979), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1702), 4, + ACTIONS(1730), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 25, - anon_sym_RPAREN, + ACTIONS(1728), 26, 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_RBRACE, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66832,77 +66824,35 @@ static const uint16_t ts_small_parse_table[] = { 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, + [51169] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1830), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1842), 1, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - STATE(979), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1717), 4, + ACTIONS(1714), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1715), 25, - anon_sym_RPAREN, + ACTIONS(1712), 25, 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_RBRACE, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66918,18 +66868,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51387] = 3, + anon_sym_COLON2, + sym_type_conversion, + [51223] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1532), 5, + 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(1530), 30, + ACTIONS(1204), 29, sym__newline, - sym__string_start, anon_sym_DOT, anon_sym_from, anon_sym_LPAREN, @@ -66958,17 +66911,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [51430] = 3, + [51268] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1536), 5, + 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(1534), 30, - sym__template_string_start, + ACTIONS(1204), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -66998,188 +66952,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51473] = 15, + [51313] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1840), 1, anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1838), 1, - anon_sym_PIPE, ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1856), 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, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 4, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1834), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, 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_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(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, + [51366] = 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, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, + ACTIONS(1544), 5, anon_sym_STAR, + anon_sym_EQ, 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_LT, + anon_sym_GT, + ACTIONS(1542), 30, + sym__template_string_start, + anon_sym_DOT, + 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_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_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,27 +67035,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51707] = 5, + anon_sym_COLON2, + sym_type_conversion, + [51409] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(604), 1, + ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(277), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(272), 4, + ACTIONS(272), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 27, + 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_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -67231,17 +67077,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51754] = 3, + anon_sym_SEMI, + [51454] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 5, + 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(1526), 30, - sym__string_start, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -67271,30 +67119,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51797] = 4, + [51499] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(283), 1, + ACTIONS(1872), 1, anon_sym_COLON_EQ, - ACTIONS(272), 5, + ACTIONS(1209), 5, anon_sym_STAR, - anon_sym_EQ, + anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 29, - sym__newline, + ACTIONS(1204), 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, @@ -67311,157 +67160,183 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [51842] = 13, + [51544] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + ACTIONS(1290), 3, 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, + ACTIONS(1295), 13, anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, + anon_sym_STAR_STAR, anon_sym_AT, + anon_sym_SLASH, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, + 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, - [51905] = 12, + [51642] = 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, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, + ACTIONS(1540), 5, anon_sym_STAR, + anon_sym_EQ, 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_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__template_string_start, + anon_sym_DOT, + 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_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, + anon_sym_LT_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] = 22, + anon_sym_COLON2, + sym_type_conversion, + [51685] = 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(1878), 1, anon_sym_STAR, - ACTIONS(1864), 1, + ACTIONS(1880), 1, + anon_sym_if, + ACTIONS(1882), 1, + anon_sym_COLON, + 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, - ACTIONS(1882), 1, - anon_sym_if, - ACTIONS(1884), 1, - anon_sym_COLON, - 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, - 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, @@ -67470,14 +67345,14 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [52047] = 4, + [51766] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1230), 3, + ACTIONS(1204), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(1235), 13, + ACTIONS(1209), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -67491,7 +67366,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1241), 19, + ACTIONS(1272), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -67511,27 +67386,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [52092] = 5, + [51811] = 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, + ACTIONS(1548), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 27, + ACTIONS(1546), 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_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -67553,25 +67425,116 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52139] = 4, + anon_sym_SEMI, + [51854] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(660), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 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(303), 29, + ACTIONS(1546), 30, + sym__string_start, 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, @@ -67594,19 +67557,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52184] = 4, + anon_sym_COLON2, + sym_type_conversion, + [52009] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1237), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 5, + ACTIONS(1544), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1542), 30, sym__newline, + sym__template_string_start, anon_sym_DOT, anon_sym_from, anon_sym_LPAREN, @@ -67635,20 +67599,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [52229] = 3, + [52052] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 5, + ACTIONS(1552), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1526), 30, - sym__newline, + ACTIONS(1550), 30, sym__string_start, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -67658,6 +67620,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, @@ -67674,29 +67637,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [52272] = 3, + anon_sym_COLON2, + sym_type_conversion, + [52095] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1532), 5, + 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_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1530), 30, - sym__string_start, + 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, + 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(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_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -67713,16 +67723,14 @@ 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, - [52315] = 4, + [52189] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(303), 3, + ACTIONS(1333), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(272), 13, + ACTIONS(1338), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -67736,7 +67744,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(588), 19, + ACTIONS(1340), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -67756,133 +67764,111 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [52360] = 15, + [52234] = 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(1721), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, + ACTIONS(1552), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(1834), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 30, + sym__newline, + sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, + anon_sym_LBRACK, + anon_sym_STAR_STAR, 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_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, 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, + anon_sym_SEMI, + [52277] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, + 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, - ACTIONS(1830), 1, + anon_sym_from, 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_COMMA, anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, + anon_sym_LBRACK, + anon_sym_STAR_STAR, 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_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, 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, + anon_sym_SEMI, + [52320] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1540), 5, + ACTIONS(638), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, anon_sym_STAR, - anon_sym_EQ, + anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1538), 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, @@ -67899,74 +67885,14 @@ static const uint16_t ts_small_parse_table[] = { 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, + [52365] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1230), 3, + ACTIONS(303), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(1235), 13, + ACTIONS(272), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -67980,7 +67906,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1262), 19, + ACTIONS(307), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -68000,88 +67926,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [52663] = 3, + [52410] = 15, 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(1840), 1, anon_sym_DOT, - anon_sym_from, + ACTIONS(1842), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, + ACTIONS(1850), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1854), 1, anon_sym_LBRACK, + ACTIONS(1856), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1862), 1, anon_sym_AMP, + ACTIONS(1864), 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, - 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, + 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_PIPE, + anon_sym_LT_LT, + ACTIONS(1852), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, 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, + ACTIONS(1738), 15, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, + anon_sym_if, 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, + 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,30 +68062,32 @@ 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, - sym__template_string_start, + ACTIONS(303), 27, 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, @@ -68202,123 +68104,195 @@ 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, - [52886] = 4, + [52618] = 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, + ACTIONS(1204), 3, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_COMMA, + anon_sym_LBRACK, + ACTIONS(1209), 13, + anon_sym_STAR, 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_SLASH, anon_sym_PERCENT, anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - anon_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(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(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, + 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(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(1840), 1, + anon_sym_DOT, ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, anon_sym_LBRACK, - ACTIONS(1844), 1, + ACTIONS(1856), 1, anon_sym_STAR_STAR, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 4, - anon_sym_STAR, - anon_sym_SLASH, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1714), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, + 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), 16, 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, - [52984] = 3, + [52809] = 10, 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, - sym__newline, + ACTIONS(1840), 1, anon_sym_DOT, - anon_sym_from, + 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_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, @@ -68328,30 +68302,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53026] = 3, + [52866] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1690), 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_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1688), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, + 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_LBRACK, - anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -68367,253 +68347,260 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53068] = 3, + [52919] = 13, 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, + ACTIONS(1840), 1, anon_sym_DOT, + ACTIONS(1842), 1, anon_sym_LPAREN, - anon_sym_COMMA, + 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_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, + 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_PERCENT, - anon_sym_SLASH_SLASH, anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, anon_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, - [53110] = 3, + [52982] = 12, 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, + ACTIONS(1840), 1, anon_sym_DOT, + ACTIONS(1842), 1, anon_sym_LPAREN, - anon_sym_COMMA, + 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_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, + 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_PERCENT, - anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, - anon_sym_LT_LT, anon_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, + [53043] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1892), 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), 28, + 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_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, - [53196] = 4, + [53110] = 15, ACTIONS(3), 1, sym_comment, - 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, + ACTIONS(1840), 1, anon_sym_DOT, + ACTIONS(1842), 1, anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, + ACTIONS(1850), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1854), 1, anon_sym_LBRACK, + ACTIONS(1856), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1862), 1, anon_sym_AMP, + ACTIONS(1864), 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, - [53240] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1568), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, + ACTIONS(1722), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 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, + 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_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, anon_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, + [53177] = 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(1878), 1, anon_sym_STAR, - 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, - sym_float, ACTIONS(1894), 1, - anon_sym_RPAREN, - STATE(1035), 1, + sym_float, + 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, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, + 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, - STATE(1139), 8, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -68622,55 +68609,57 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [53360] = 21, + [53258] = 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(1878), 1, anon_sym_STAR, - 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, - sym_float, ACTIONS(1894), 1, - anon_sym_RBRACK, - STATE(1035), 1, + sym_float, + 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, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, + 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, - STATE(1139), 8, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -68679,27 +68668,73 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [53438] = 3, + [53339] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 5, + 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(1570), 29, + ACTIONS(1204), 27, 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, @@ -68716,27 +68751,23 @@ 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, - [53480] = 4, + [53431] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1422), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1425), 4, + ACTIONS(1706), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1420), 27, + ACTIONS(1704), 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, @@ -68758,16 +68789,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53524] = 3, + anon_sym_SEMI, + [53473] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1235), 5, + ACTIONS(1674), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1672), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -68797,23 +68829,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53566] = 4, + [53515] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(642), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 5, + ACTIONS(1678), 5, anon_sym_STAR, - anon_sym_COLON, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 28, + 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_in, @@ -68821,6 +68849,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, @@ -68837,16 +68866,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53610] = 3, + anon_sym_COLON2, + sym_type_conversion, + [53557] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, + ACTIONS(1032), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, + ACTIONS(1030), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -68876,16 +68907,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53652] = 3, + [53599] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 5, + ACTIONS(1674), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1692), 29, + ACTIONS(1672), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -68915,19 +68946,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [53694] = 3, + [53641] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1544), 5, + ACTIONS(1614), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1542), 29, - sym__newline, + ACTIONS(1612), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -68937,6 +68966,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, @@ -68953,31 +68983,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53736] = 4, + anon_sym_COLON2, + sym_type_conversion, + [53683] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1465), 3, - anon_sym_RPAREN, + 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_RBRACK, - ACTIONS(1468), 4, + 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(1463), 27, + ACTIONS(1684), 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, @@ -68994,19 +69061,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53780] = 3, + anon_sym_COLON2, + sym_type_conversion, + [53767] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, - sym__newline, + ACTIONS(1688), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69016,6 +69083,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, @@ -69032,20 +69100,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53822] = 3, + anon_sym_COLON2, + sym_type_conversion, + [53809] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1636), 29, - sym__newline, + ACTIONS(1688), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69055,6 +69122,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, @@ -69071,17 +69139,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53864] = 3, + anon_sym_COLON2, + sym_type_conversion, + [53851] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(272), 5, + ACTIONS(1694), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 29, + ACTIONS(1692), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -69111,19 +69180,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53906] = 3, + [53893] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 5, + ACTIONS(1698), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1640), 29, - sym__newline, + ACTIONS(1696), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69133,6 +69200,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, @@ -69149,20 +69217,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53948] = 3, + anon_sym_COLON2, + sym_type_conversion, + [53935] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1570), 29, - sym__newline, + ACTIONS(1688), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69172,6 +69239,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, @@ -69188,78 +69256,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [53990] = 22, + anon_sym_COLON2, + sym_type_conversion, + [53977] = 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(1702), 5, anon_sym_STAR, - ACTIONS(1864), 1, + 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, - 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_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, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_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(1552), 5, + ACTIONS(1702), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1550), 29, - sym__newline, + ACTIONS(1700), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69269,6 +69317,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, @@ -69285,17 +69334,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54112] = 3, + anon_sym_COLON2, + sym_type_conversion, + [54061] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 5, + ACTIONS(1706), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1562), 29, + ACTIONS(1704), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -69325,19 +69375,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54154] = 3, + [54103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, + ACTIONS(1702), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, - sym__newline, + ACTIONS(1700), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69347,6 +69395,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, @@ -69363,20 +69412,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54196] = 3, + anon_sym_COLON2, + sym_type_conversion, + [54145] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1686), 5, + ACTIONS(1622), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1684), 29, - sym__newline, + ACTIONS(1620), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69386,6 +69434,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, @@ -69402,17 +69451,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54238] = 3, + anon_sym_COLON2, + sym_type_conversion, + [54187] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 5, + ACTIONS(1626), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 29, + ACTIONS(1624), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -69442,28 +69492,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54280] = 3, + [54229] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1548), 5, + ACTIONS(1338), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1546), 29, - sym__newline, + ACTIONS(1333), 30, anon_sym_DOT, - anon_sym_from, 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, @@ -69480,29 +69531,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54322] = 3, + [54271] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 5, + ACTIONS(1295), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1562), 29, - sym__newline, + ACTIONS(1290), 30, anon_sym_DOT, - anon_sym_from, 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, @@ -69519,20 +69570,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54364] = 3, + [54313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1560), 5, + ACTIONS(1630), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1558), 29, - sym__newline, + ACTIONS(1628), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69542,6 +69590,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, @@ -69558,17 +69607,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54406] = 3, + anon_sym_COLON2, + sym_type_conversion, + [54355] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1646), 5, + ACTIONS(1618), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1644), 29, + ACTIONS(1616), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69598,55 +69648,113 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54448] = 21, + [54397] = 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(1878), 1, anon_sym_STAR, - 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(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(1896), 1, + ACTIONS(1904), 1, anon_sym_RBRACK, - 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, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1472), 4, + STATE(1489), 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, @@ -69655,16 +69763,16 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [54526] = 3, + [54555] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1698), 5, + ACTIONS(1682), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1696), 29, + ACTIONS(1680), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69694,19 +69802,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54568] = 3, + [54597] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1584), 5, + ACTIONS(1634), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1582), 29, - sym__newline, + ACTIONS(1632), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -69716,6 +69822,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, @@ -69732,17 +69839,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [54610] = 3, + anon_sym_COLON2, + sym_type_conversion, + [54639] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 5, + ACTIONS(1650), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1574), 29, + ACTIONS(1648), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69772,16 +69880,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54652] = 3, + [54681] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1698), 5, + ACTIONS(1638), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1696), 29, + 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, @@ -69811,16 +69958,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54694] = 3, + [54765] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1425), 5, + ACTIONS(1686), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1420), 29, + ACTIONS(1684), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69850,16 +69997,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54736] = 3, + [54807] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1468), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1463), 29, + ACTIONS(1688), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69889,46 +70036,7 @@ static const uint16_t ts_small_parse_table[] = { 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, + [54849] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1690), 5, @@ -69938,7 +70046,9 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -69948,7 +70058,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, @@ -69965,18 +70074,17 @@ 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, - [54862] = 3, + anon_sym_SEMI, + [54891] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1600), 5, + ACTIONS(1050), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1598), 29, + ACTIONS(1048), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70006,29 +70114,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54904] = 3, + [54933] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1425), 4, + ACTIONS(1906), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, anon_sym_STAR, + anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1420), 30, + ACTIONS(1204), 28, 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, @@ -70045,29 +70154,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54946] = 3, + [54977] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1468), 4, + ACTIONS(1694), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1463), 30, + 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_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, @@ -70084,17 +70192,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54988] = 3, + anon_sym_SEMI, + [55019] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 5, + ACTIONS(1698), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1636), 29, + ACTIONS(1696), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70104,7 +70215,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, @@ -70121,19 +70231,20 @@ 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, - [55030] = 3, + anon_sym_SEMI, + [55061] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1640), 29, + ACTIONS(1688), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70143,7 +70254,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, @@ -70160,19 +70270,20 @@ 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, - [55072] = 3, + anon_sym_SEMI, + [55103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1646), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1644), 29, + ACTIONS(303), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70182,7 +70293,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, @@ -70199,18 +70309,17 @@ 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, - [55114] = 3, + anon_sym_SEMI, + [55145] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1650), 5, + ACTIONS(1646), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1648), 29, + ACTIONS(1644), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70240,21 +70349,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55156] = 3, + [55187] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 5, + ACTIONS(652), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, anon_sym_STAR, - anon_sym_EQ, + anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, - sym__newline, + ACTIONS(303), 28, 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_in, @@ -70278,28 +70389,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [55198] = 3, + [55231] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 5, + ACTIONS(1292), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1295), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1062), 29, + ACTIONS(1290), 27, 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, @@ -70316,19 +70429,19 @@ 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, - [55240] = 3, + [55275] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 5, + ACTIONS(1338), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1692), 29, + ACTIONS(1333), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70338,7 +70451,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, @@ -70355,18 +70467,17 @@ 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, - [55282] = 3, + anon_sym_SEMI, + [55317] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1650), 5, + ACTIONS(1295), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1648), 29, + ACTIONS(1290), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70396,23 +70507,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55324] = 3, + [55359] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1596), 5, + ACTIONS(1265), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1594), 29, - sym__newline, + ACTIONS(1204), 27, 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, @@ -70434,20 +70547,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [55366] = 3, + [55403] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1235), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, - sym__newline, + ACTIONS(303), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70457,6 +70567,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, @@ -70473,17 +70584,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [55408] = 3, + anon_sym_COLON2, + sym_type_conversion, + [55445] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1682), 5, + ACTIONS(1646), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1680), 29, + ACTIONS(1644), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70513,16 +70625,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55450] = 3, + [55487] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 5, + ACTIONS(1662), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 29, + ACTIONS(1660), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70552,130 +70664,16 @@ static const uint16_t ts_small_parse_table[] = { 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, + [55529] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 5, + ACTIONS(1622), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1620), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70705,16 +70703,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55690] = 3, + [55571] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 5, + ACTIONS(1626), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 29, + ACTIONS(1624), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70744,17 +70742,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55732] = 3, + [55613] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1584), 5, + ACTIONS(1614), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1582), 29, + ACTIONS(1612), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70764,7 +70764,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, @@ -70781,25 +70780,26 @@ 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, - [55774] = 3, + anon_sym_SEMI, + [55655] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 5, + ACTIONS(1335), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1338), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1590), 29, - sym__newline, + ACTIONS(1333), 27, 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, @@ -70821,17 +70821,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [55816] = 3, + [55699] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 5, + ACTIONS(1618), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1590), 29, + ACTIONS(1616), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70861,17 +70860,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55858] = 3, + [55741] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1686), 5, + ACTIONS(1710), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1684), 29, + ACTIONS(1708), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70881,7 +70882,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, @@ -70898,19 +70898,20 @@ 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, - [55900] = 3, + anon_sym_SEMI, + [55783] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1548), 5, + ACTIONS(1638), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1546), 29, + ACTIONS(1636), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70920,7 +70921,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, @@ -70937,19 +70937,20 @@ 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, - [55942] = 3, + anon_sym_SEMI, + [55825] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 5, + ACTIONS(1666), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1664), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70959,7 +70960,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, @@ -70976,9 +70976,8 @@ 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, - [55984] = 3, + anon_sym_SEMI, + [55867] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1678), 5, @@ -70988,7 +70987,9 @@ static const uint16_t ts_small_parse_table[] = { 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, @@ -70998,7 +70999,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, @@ -71015,19 +71015,20 @@ 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, - [56026] = 3, + anon_sym_SEMI, + [55909] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1682), 5, + ACTIONS(1670), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1680), 29, + ACTIONS(1668), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71037,7 +71038,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, @@ -71054,19 +71054,77 @@ 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, - [56068] = 3, + anon_sym_SEMI, + [55951] = 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(1908), 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, + [56029] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 5, + ACTIONS(1630), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1628), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71076,7 +71134,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, @@ -71093,21 +71150,18 @@ 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, - [56110] = 3, + anon_sym_SEMI, + [56071] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1678), 5, + ACTIONS(1650), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1676), 29, - sym__newline, + ACTIONS(1648), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71117,6 +71171,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, @@ -71133,17 +71188,132 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [56152] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56113] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 5, + 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(1908), 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, + [56191] = 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_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(1554), 29, + ACTIONS(1640), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -71173,16 +71343,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [56194] = 3, + [56311] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1552), 5, + ACTIONS(1654), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1550), 29, + ACTIONS(1652), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -71212,19 +71382,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [56236] = 3, + [56353] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 5, + ACTIONS(1658), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 29, - sym__newline, + ACTIONS(1656), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71234,6 +71402,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, @@ -71250,17 +71419,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [56278] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56395] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1560), 5, + 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(1558), 29, + ACTIONS(1660), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -71290,16 +71517,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [56320] = 3, + [56515] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(272), 5, + ACTIONS(1702), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 29, + ACTIONS(1700), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -71329,17 +71556,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [56362] = 3, + [56557] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 5, + ACTIONS(1702), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1574), 29, + ACTIONS(1700), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71349,7 +71578,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, @@ -71366,19 +71594,20 @@ 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, - [56404] = 3, + anon_sym_SEMI, + [56599] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1076), 5, + ACTIONS(1658), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1074), 29, + ACTIONS(1656), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71388,7 +71617,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, @@ -71405,18 +71633,17 @@ 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, - [56446] = 3, + anon_sym_SEMI, + [56641] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 5, + ACTIONS(1710), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 29, + ACTIONS(1708), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -71446,17 +71673,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [56488] = 3, + [56683] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1596), 5, + ACTIONS(1702), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1594), 29, + ACTIONS(1700), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -71466,7 +71695,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, @@ -71483,30 +71711,28 @@ 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, - [56530] = 3, + anon_sym_SEMI, + [56725] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 4, + ACTIONS(1666), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1640), 29, + 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_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -71523,23 +71749,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56571] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56767] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1682), 4, + ACTIONS(1654), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1680), 29, + ACTIONS(1652), 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, @@ -71561,28 +71789,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56612] = 3, + anon_sym_SEMI, + [56809] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 4, + ACTIONS(1670), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1668), 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_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -71599,28 +71827,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56653] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56851] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(272), 4, + ACTIONS(1209), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 29, + 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_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -71637,23 +71866,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56694] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56893] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 4, + ACTIONS(1209), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1562), 29, + ACTIONS(1204), 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, @@ -71675,23 +71906,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56735] = 3, + anon_sym_SEMI, + [56935] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1552), 4, + ACTIONS(1634), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1550), 29, + ACTIONS(1632), 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, @@ -71713,15 +71945,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56776] = 3, + anon_sym_SEMI, + [56977] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1560), 4, + ACTIONS(1670), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1558), 29, + ACTIONS(1668), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71751,15 +71984,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56817] = 3, + [57018] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 4, + ACTIONS(1618), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1574), 29, + ACTIONS(1616), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71789,25 +72022,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56858] = 5, + [57059] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(580), 1, - anon_sym_COLON_EQ, - ACTIONS(634), 1, - anon_sym_EQ, - ACTIONS(272), 4, + ACTIONS(1622), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 27, + 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, @@ -71829,15 +72060,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56903] = 3, + [57100] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1076), 4, + ACTIONS(1626), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1074), 29, + ACTIONS(1624), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71867,15 +72098,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56944] = 3, + [57141] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1646), 4, + ACTIONS(1630), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1644), 29, + ACTIONS(1628), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71905,15 +72136,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56985] = 3, + [57182] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1596), 4, + ACTIONS(1634), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1594), 29, + ACTIONS(1632), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71943,15 +72174,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57026] = 3, + [57223] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 4, + ACTIONS(1638), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 29, + ACTIONS(1636), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71981,15 +72212,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57067] = 3, + [57264] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 4, + ACTIONS(1050), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 29, + ACTIONS(1048), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72019,15 +72250,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57108] = 3, + [57305] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1584), 4, + ACTIONS(1646), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1582), 29, + ACTIONS(1644), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72057,15 +72288,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57149] = 3, + [57346] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 4, + ACTIONS(1650), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 29, + ACTIONS(1648), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72095,15 +72326,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57190] = 3, + [57387] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1690), 4, + ACTIONS(1654), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1688), 29, + ACTIONS(1652), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72133,15 +72364,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57231] = 3, + [57428] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1544), 4, + ACTIONS(1658), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1542), 29, + ACTIONS(1656), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72171,15 +72402,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57272] = 3, + [57469] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 4, + ACTIONS(1662), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1586), 29, + ACTIONS(1660), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72209,15 +72440,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57313] = 3, + [57510] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 4, + ACTIONS(1710), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, + ACTIONS(1708), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72247,15 +72478,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57354] = 3, + [57551] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 4, + ACTIONS(1666), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1570), 29, + ACTIONS(1664), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72285,15 +72516,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57395] = 3, + [57592] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1650), 4, + ACTIONS(1674), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1648), 29, + ACTIONS(1672), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72323,15 +72554,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57436] = 3, + [57633] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 4, + ACTIONS(1678), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, + ACTIONS(1676), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72361,72 +72592,15 @@ static const uint16_t ts_small_parse_table[] = { 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(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(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, + [57674] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1235), 4, + ACTIONS(1032), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1030), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72456,25 +72630,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57597] = 5, + [57715] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1258), 1, - anon_sym_COLON_EQ, - ACTIONS(1878), 1, - anon_sym_EQ, - ACTIONS(1235), 4, + ACTIONS(1682), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 27, + 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, @@ -72496,127 +72668,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57642] = 20, + [57756] = 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(1686), 4, 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, - 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, - [57717] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1860), 1, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 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, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1900), 1, - sym_identifier, - ACTIONS(1904), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1421), 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, - [57796] = 3, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_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(1600), 4, + ACTIONS(1690), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1598), 29, + ACTIONS(1688), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72646,15 +72744,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57837] = 3, + [57838] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 4, + ACTIONS(1690), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1062), 29, + ACTIONS(1688), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72684,15 +72782,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57878] = 3, + [57879] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 4, + ACTIONS(1694), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1636), 29, + ACTIONS(1692), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72722,15 +72820,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57919] = 3, + [57920] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 4, + ACTIONS(1698), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1590), 29, + ACTIONS(1696), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72760,15 +72858,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57960] = 3, + [57961] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 4, + ACTIONS(1690), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1692), 29, + ACTIONS(1688), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72798,15 +72896,129 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58001] = 3, + [58002] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1698), 4, + ACTIONS(1702), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1696), 29, + 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, @@ -72836,55 +73048,110 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58042] = 22, + [58166] = 20, 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, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1864), 1, + ACTIONS(1878), 1, + anon_sym_STAR, + 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, - ACTIONS(1900), 1, + 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, + [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(1906), 1, + ACTIONS(1914), 1, anon_sym_RPAREN, - STATE(1035), 1, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1468), 1, + STATE(1424), 1, sym_match_keyword_pattern, - STATE(1544), 1, + 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, @@ -72893,15 +73160,112 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58121] = 3, + [58320] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(1686), 4, + 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(1916), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1421), 1, + sym_match_keyword_pattern, + 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, + [58399] = 5, + ACTIONS(3), 1, + sym_comment, + 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(1684), 29, + 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, @@ -72931,15 +73295,112 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58162] = 3, + [58485] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1548), 4, + 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(1546), 29, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72969,15 +73430,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58203] = 3, + [58650] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 4, + ACTIONS(1614), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1612), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -73007,15 +73468,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58244] = 3, + [58691] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1678), 4, + ACTIONS(1642), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1676), 29, + ACTIONS(1640), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -73045,51 +73506,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58285] = 20, + [58732] = 20, 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, + ACTIONS(1874), 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, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1544), 1, + 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 +73559,49 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58358] = 19, + [58805] = 19, 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, + ACTIONS(1874), 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, + 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(1536), 2, + STATE(1534), 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,49 +73610,49 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58428] = 19, + [58875] = 19, 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, + ACTIONS(1874), 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, + 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(1580), 2, + STATE(1549), 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, @@ -73200,43 +73661,43 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58498] = 17, + [58945] = 17, 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1864), 1, + ACTIONS(1884), 1, anon_sym_DASH, - 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, - ACTIONS(1908), 1, + ACTIONS(1920), 1, sym_match_wildcard_pattern, - 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, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1098), 8, + STATE(1136), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -73245,43 +73706,43 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58560] = 17, + [59007] = 17, 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, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1864), 1, + ACTIONS(1884), 1, anon_sym_DASH, - 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, - ACTIONS(1910), 1, + ACTIONS(1922), 1, sym_match_wildcard_pattern, - 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, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1132), 8, + STATE(1101), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -73290,28 +73751,28 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58622] = 8, + [59069] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1666), 1, + ACTIONS(1926), 1, + anon_sym_as, + ACTIONS(1931), 1, anon_sym_not, - ACTIONS(1674), 1, + ACTIONS(1937), 1, anon_sym_is, - ACTIONS(1914), 1, - anon_sym_as, - STATE(991), 1, + STATE(996), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1672), 2, + ACTIONS(1934), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1656), 6, + 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,90 +73782,90 @@ 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_async, - anon_sym_for, + anon_sym_COLON, + anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58700] = 8, + [59147] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1918), 1, - anon_sym_EQ, - ACTIONS(1935), 1, + ACTIONS(1602), 1, anon_sym_not, - ACTIONS(1941), 1, + ACTIONS(1610), 1, anon_sym_is, - STATE(992), 1, + ACTIONS(1942), 1, + anon_sym_as, + STATE(996), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1938), 2, + ACTIONS(1608), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1932), 6, + 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(1916), 9, + ACTIONS(1940), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58739] = 8, + [59186] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1626), 1, + ACTIONS(1926), 1, + anon_sym_EQ, + ACTIONS(1947), 1, anon_sym_not, - ACTIONS(1634), 1, + ACTIONS(1953), 1, anon_sym_is, - ACTIONS(1914), 1, - anon_sym_EQ, - STATE(992), 1, + STATE(999), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1632), 2, + ACTIONS(1950), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1612), 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(1912), 9, + ACTIONS(1924), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73414,14 +73875,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58778] = 4, + [59225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1946), 1, + ACTIONS(1958), 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,100 +73901,39 @@ 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_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, + anon_sym_SEMI, + [59292] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1967), 19, + ACTIONS(1973), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73553,10 +73953,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58950] = 2, + [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, + 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(1969), 19, + ACTIONS(1272), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73576,28 +74034,102 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58975] = 8, + [59416] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(1918), 1, - anon_sym_EQ, - ACTIONS(1974), 1, + 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(1980), 1, + ACTIONS(1776), 1, anon_sym_is, - STATE(1000), 1, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(1001), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1977), 2, + ACTIONS(1774), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1971), 6, + 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(1916), 7, + ACTIONS(1940), 7, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -73605,10 +74137,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, anon_sym_SEMI, - [59012] = 2, + [59559] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1241), 19, + ACTIONS(1995), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73628,10 +74160,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59037] = 2, + [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(928), 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, + [59666] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1983), 19, + ACTIONS(1999), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73651,46 +74245,17 @@ static const uint16_t ts_small_parse_table[] = { 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, + [59691] = 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,54 @@ 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, + ACTIONS(1940), 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, - anon_sym_COLON2, - sym_type_conversion, - [59165] = 7, + [59755] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1816), 1, + ACTIONS(2006), 1, anon_sym_not, - ACTIONS(1824), 1, + ACTIONS(2012), 1, anon_sym_is, - STATE(996), 1, + STATE(1015), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1822), 2, + ACTIONS(2009), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1806), 6, + 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(1912), 8, + ACTIONS(1924), 8, anon_sym_COMMA, anon_sym_if, anon_sym_COLON, @@ -73762,156 +74326,110 @@ 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, + [59790] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1780), 1, + ACTIONS(1860), 1, anon_sym_not, - ACTIONS(1788), 1, + ACTIONS(1868), 1, anon_sym_is, - ACTIONS(1914), 1, - anon_sym_EQ, - STATE(1000), 1, + STATE(1019), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1786), 2, + ACTIONS(1866), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1768), 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(1912), 7, - sym__newline, - anon_sym_from, + ACTIONS(1940), 7, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, + anon_sym_COLON, anon_sym_and, anon_sym_or, - anon_sym_SEMI, - [59290] = 16, + [59824] = 13, 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, + 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(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(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(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, + ACTIONS(2015), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, + STATE(1000), 1, + aux_sym__patterns_repeat1, + ACTIONS(2017), 16, anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [59377] = 7, + anon_sym_in, + 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, + [59898] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2006), 1, + ACTIONS(2022), 1, anon_sym_not, - ACTIONS(2012), 1, + ACTIONS(2028), 1, anon_sym_is, - STATE(1011), 1, + STATE(1019), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(2009), 2, + ACTIONS(2025), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(2003), 6, + 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(1916), 7, + ACTIONS(1924), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73919,17 +74437,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [59411] = 4, + [59932] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2015), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - STATE(994), 1, - aux_sym__patterns_repeat1, - ACTIONS(2017), 16, + ACTIONS(2033), 1, anon_sym_COLON, - anon_sym_in, + ACTIONS(2035), 1, anon_sym_EQ, + STATE(1018), 1, + aux_sym__patterns_repeat1, + ACTIONS(2037), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -73943,526 +74462,468 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59439] = 13, - 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, + [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, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2025), 1, + ACTIONS(2045), 1, anon_sym_COLON, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1720), 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, - [59528] = 12, + [60006] = 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, + 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(2031), 1, + ACTIONS(2051), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1682), 1, + STATE(1752), 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, - [59571] = 12, + [60049] = 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, + 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(2033), 1, + ACTIONS(2053), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1710), 1, + STATE(1639), 1, sym_lambda_parameters, - STATE(1574), 2, + STATE(1689), 1, + sym__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, - [59614] = 6, + [60092] = 12, 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, - aux_sym__patterns_repeat1, - 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, - [59645] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 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(2043), 1, + ACTIONS(2055), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1622), 1, + STATE(1729), 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, - [59688] = 12, + [60135] = 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, + 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(2045), 1, + ACTIONS(2057), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1605), 1, + STATE(1667), 1, sym_lambda_parameters, - STATE(1606), 1, + STATE(1689), 1, sym__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, - [59731] = 12, + [60178] = 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, + 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(2047), 1, + ACTIONS(2059), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1705), 1, + STATE(1697), 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, - [59774] = 12, + [60221] = 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, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2061), 1, anon_sym_COLON, - STATE(1453), 1, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1642), 1, + STATE(1732), 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, + [60264] = 11, 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(2053), 1, + ACTIONS(2065), 1, anon_sym_RPAREN, - STATE(1511), 1, + STATE(1445), 1, sym_parameter, - STATE(1613), 1, + STATE(1682), 1, sym__parameters, - 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, - [59857] = 13, + [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, + ACTIONS(2033), 1, + anon_sym_COLON, + ACTIONS(2035), 1, + anon_sym_EQ, + ACTIONS(2037), 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, + [60373] = 10, + 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(2055), 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, - [59938] = 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(2055), 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, - [59975] = 4, - ACTIONS(3), 1, - sym_comment, - 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, + [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, - ACTIONS(2057), 1, + ACTIONS(2069), 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, + [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, - ACTIONS(2057), 1, + ACTIONS(2069), 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, + [60521] = 9, 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, + 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, + [60555] = 9, 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, + 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, + [60589] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2061), 1, + 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,55 +74972,63 @@ 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, - sym__template_string_start, - STATE(760), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(2081), 8, - anon_sym_RPAREN, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, + ACTIONS(2092), 1, anon_sym_if, + ACTIONS(2094), 1, anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACE, - [60258] = 5, + 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(2083), 1, + ACTIONS(2106), 1, anon_sym_DOT, - ACTIONS(2085), 1, + ACTIONS(2108), 1, anon_sym_LPAREN, - STATE(1033), 1, + STATE(1064), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2087), 8, + ACTIONS(2110), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -74568,437 +75037,475 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60281] = 9, - ACTIONS(2077), 1, + [60744] = 4, + ACTIONS(3), 1, sym_comment, - ACTIONS(2089), 1, + ACTIONS(666), 1, + sym__template_string_start, + STATE(750), 2, + sym_template_string, + aux_sym_concatenated_template_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, + [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, + ACTIONS(2114), 1, sym__string_end, - STATE(1040), 1, + 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, - [60343] = 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(2099), 1, + 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, - [60374] = 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(2101), 1, + 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, - [60405] = 12, + [60858] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2105), 1, + ACTIONS(2092), 1, anon_sym_if, - ACTIONS(2107), 1, + ACTIONS(2094), 1, anon_sym_COLON, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2113), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - ACTIONS(2115), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2104), 1, anon_sym_or, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1719), 1, + STATE(1728), 1, sym__comprehension_clauses, - [60442] = 9, - ACTIONS(2077), 1, + [60895] = 12, + ACTIONS(3), 1, sym_comment, - ACTIONS(2089), 1, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2129), 1, + 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(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2119), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2142), 1, sym__string_end, - STATE(1054), 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, - [60473] = 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(2121), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2144), 1, sym__string_end, - STATE(1034), 1, + 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, - [60504] = 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(2123), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2146), 1, sym__string_end, - STATE(1046), 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, - [60535] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61025] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2125), 1, + ACTIONS(2086), 1, + sym_comment, + 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, - [60566] = 9, - ACTIONS(2077), 1, + [61056] = 2, + ACTIONS(3), 1, sym_comment, - ACTIONS(2089), 1, + ACTIONS(2075), 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, + [61073] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2127), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2150), 1, sym__string_end, - STATE(1034), 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, - [60597] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61104] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2129), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2152), 1, sym__string_end, - STATE(1049), 1, + STATE(1058), 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, - [60628] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61135] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2131), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2154), 1, sym__string_end, - STATE(1050), 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, - [60659] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61166] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2133), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2156), 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, - [60690] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61197] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2135), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2158), 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, - [60721] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61228] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2137), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2160), 1, sym__string_end, - STATE(1052), 1, + STATE(1065), 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, + [61259] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2139), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2162), 1, sym__string_end, - STATE(1034), 1, + STATE(1062), 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, - [60783] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61290] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2141), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2164), 1, sym__string_end, - STATE(1043), 1, + STATE(1066), 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, - sym_comment, - ACTIONS(2089), 1, + [61321] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2143), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2166), 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, + [61352] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2105), 1, + ACTIONS(2092), 1, anon_sym_if, - ACTIONS(2107), 1, + ACTIONS(2094), 1, anon_sym_COLON, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2113), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - ACTIONS(2115), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2104), 1, anon_sym_or, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1672), 1, + STATE(1695), 1, sym__comprehension_clauses, - [60882] = 2, + [61389] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2063), 11, - anon_sym_import, + 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, @@ -75007,108 +75514,84 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60899] = 12, - ACTIONS(3), 1, + [61412] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 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, + 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(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(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(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2105), 1, + ACTIONS(2092), 1, anon_sym_if, - ACTIONS(2107), 1, + ACTIONS(2094), 1, anon_sym_COLON, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2113), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - ACTIONS(2115), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2104), 1, anon_sym_or, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1666), 1, + STATE(1717), 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, + [61511] = 4, 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(2081), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75117,38 +75600,14 @@ static const uint16_t ts_small_parse_table[] = { 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, + [61532] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2166), 1, + ACTIONS(2178), 1, anon_sym_as, - ACTIONS(2164), 7, + ACTIONS(2176), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75156,264 +75615,169 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61107] = 11, + anon_sym_or, + [61552] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 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, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2168), 1, + ACTIONS(2180), 1, anon_sym_RPAREN, - ACTIONS(2170), 1, - anon_sym_COMMA, - STATE(1091), 1, + 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(1628), 1, sym__comprehension_clauses, - [61141] = 6, + [61586] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2174), 1, - anon_sym_as, - ACTIONS(2172), 6, + ACTIONS(2176), 8, 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, + [61606] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2186), 1, + ACTIONS(2188), 1, anon_sym_as, - ACTIONS(2184), 7, + ACTIONS(2186), 6, 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, + [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_COLON, - anon_sym_else, + anon_sym_if, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - [61265] = 11, + [61652] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2152), 1, + ACTIONS(2129), 1, + anon_sym_RPAREN, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2190), 1, - anon_sym_RPAREN, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1657), 1, + STATE(1711), 1, sym__comprehension_clauses, - [61299] = 11, + [61686] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 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, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2192), 1, - anon_sym_RPAREN, ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, anon_sym_COMMA, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1423), 1, + STATE(1476), 1, aux_sym_argument_list_repeat1, - STATE(1731), 1, + STATE(1673), 1, sym__comprehension_clauses, - [61333] = 6, + [61720] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2184), 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, + ACTIONS(2186), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, anon_sym_COLON, anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [61399] = 11, + [61742] = 6, ACTIONS(3), 1, sym_comment, - 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, + ACTIONS(2140), 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, + ACTIONS(2202), 1, anon_sym_as, - ACTIONS(2164), 8, + ACTIONS(2200), 6, 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, + [61766] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2210), 2, + ACTIONS(2206), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(2208), 8, + ACTIONS(2204), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75422,289 +75786,247 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61471] = 4, + [61784] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2184), 8, + 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_else, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - [61491] = 11, + [61802] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2113), 1, + ACTIONS(2100), 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, + ACTIONS(2140), 1, anon_sym_or, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1726), 1, + STATE(1754), 1, sym__comprehension_clauses, - [61525] = 5, + [61836] = 4, 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(2196), 7, + ACTIONS(2212), 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, - [61547] = 4, + [61856] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2180), 1, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2200), 8, + ACTIONS(2216), 1, + anon_sym_as, + ACTIONS(2214), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - [61567] = 6, + [61880] = 5, ACTIONS(3), 1, sym_comment, - 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(2212), 1, + ACTIONS(2178), 1, anon_sym_as, - ACTIONS(2176), 6, + ACTIONS(2176), 7, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61591] = 11, + [61902] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 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, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2214), 1, + ACTIONS(2218), 1, anon_sym_RPAREN, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1670), 1, + STATE(1673), 1, sym__comprehension_clauses, - [61625] = 11, + [61936] = 5, 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, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2184), 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, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2200), 7, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, + anon_sym_COLON, + anon_sym_else, 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, + anon_sym_RBRACE, + anon_sym_EQ, + [61958] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 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, + ACTIONS(2140), 1, anon_sym_or, - STATE(1091), 1, + ACTIONS(2220), 1, + anon_sym_RPAREN, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1659), 1, + STATE(1618), 1, sym__comprehension_clauses, - [61727] = 11, + [61992] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 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, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2216), 1, + ACTIONS(2222), 1, anon_sym_RPAREN, - ACTIONS(2218), 1, + ACTIONS(2224), 1, anon_sym_COMMA, - STATE(1091), 1, + 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_if, anon_sym_COLON, anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_or, - [61797] = 11, + [62068] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2145), 1, - anon_sym_RPAREN, - ACTIONS(2152), 1, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 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, + STATE(1106), 1, sym_for_in_clause, - STATE(1267), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1731), 1, + STATE(1713), 1, sym__comprehension_clauses, - [61831] = 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(2224), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1095), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61854] = 4, + [62102] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2228), 7, + ACTIONS(2226), 1, + anon_sym_as, + ACTIONS(2212), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75712,80 +76034,121 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61873] = 4, + [62124] = 11, 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, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, - 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, - [61892] = 5, + 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(2178), 1, + 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(2234), 6, + ACTIONS(2228), 1, anon_sym_RPAREN, + ACTIONS(2230), 1, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61913] = 6, + 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(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2226), 1, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2236), 3, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2232), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1101), 3, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1106), 1, sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61936] = 7, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [62226] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2238), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2240), 1, + 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(2244), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2140), 1, anon_sym_or, - STATE(1220), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2242), 4, + 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, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61961] = 4, + anon_sym_or, + [62278] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2228), 7, + ACTIONS(2236), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75793,29 +76156,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61980] = 4, + [62297] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2232), 1, - anon_sym_PIPE, - STATE(1093), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2248), 7, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2238), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61999] = 4, + [62318] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2228), 7, + ACTIONS(2236), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75823,14 +76187,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62018] = 4, + [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(1100), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62360] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2252), 1, + ACTIONS(2253), 1, anon_sym_PIPE, - STATE(1100), 1, + STATE(1105), 1, aux_sym_match_or_pattern_repeat1, - ACTIONS(2250), 7, + ACTIONS(2251), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75838,117 +76219,141 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [62037] = 6, + [62379] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2257), 1, - anon_sym_if, - ACTIONS(2260), 1, - anon_sym_async, - ACTIONS(2263), 1, - anon_sym_for, - ACTIONS(2255), 3, + 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, - STATE(1101), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [62060] = 7, + [62398] = 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(2264), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62085] = 2, + [62423] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2268), 8, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2236), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62099] = 2, + [62442] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1606), 8, + 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, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62113] = 2, + [62461] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2270), 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(2272), 3, + anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [62127] = 2, + STATE(1108), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62484] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2059), 8, + ACTIONS(2260), 1, anon_sym_COMMA, + ACTIONS(2262), 1, anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, + ACTIONS(2266), 1, anon_sym_and, + ACTIONS(2268), 1, anon_sym_or, + STATE(1274), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62141] = 2, + [62509] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2272), 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, - [62155] = 2, + STATE(1100), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62532] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2274), 8, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + 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, - [62169] = 2, + anon_sym_EQ, + [62553] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2276), 8, + ACTIONS(2280), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75957,10 +76362,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62183] = 2, + [62567] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2278), 8, + ACTIONS(2282), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75969,54 +76374,38 @@ static const uint16_t ts_small_parse_table[] = { 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, - STATE(1113), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2282), 6, - anon_sym_RPAREN, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62237] = 4, + anon_sym_EQ, + anon_sym_SEMI, + [62599] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2288), 1, + ACTIONS(2290), 1, anon_sym_COMMA, STATE(1113), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2286), 6, + ACTIONS(2288), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62255] = 2, + [62617] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2291), 8, + ACTIONS(2293), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76025,22 +76414,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62269] = 2, + [62631] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2293), 8, - anon_sym_RPAREN, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2190), 6, + sym__newline, + anon_sym_from, anon_sym_COMMA, - anon_sym_as, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62283] = 2, + anon_sym_EQ, + anon_sym_SEMI, + [62649] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2295), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76049,184 +76440,151 @@ static const uint16_t ts_small_parse_table[] = { 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, + [62663] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2301), 8, + 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_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62329] = 4, + [62679] = 5, 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, + ACTIONS(2299), 1, anon_sym_if, - anon_sym_RBRACE, + ACTIONS(2200), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62347] = 5, + 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(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, - ACTIONS(2196), 5, + ACTIONS(2311), 5, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62367] = 4, + [62741] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2244), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2200), 6, - anon_sym_COMMA, + ACTIONS(2299), 1, anon_sym_if, - anon_sym_RBRACE, + ACTIONS(2186), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62385] = 3, + anon_sym_SEMI, + [62761] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2164), 7, + 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, - anon_sym_EQ, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62401] = 4, + [62779] = 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(2164), 6, + ACTIONS(2212), 6, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, - anon_sym_RBRACE, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62419] = 5, + anon_sym_SEMI, + [62797] = 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(2176), 5, + 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, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62439] = 5, + [62811] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2172), 5, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2319), 5, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62459] = 4, + [62831] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2200), 6, + 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, - [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_class, - STATE(550), 2, - sym_function_definition, - sym_class_definition, - STATE(1257), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [62525] = 2, + [62845] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2319), 8, + ACTIONS(2321), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76235,10 +76593,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62539] = 2, + [62859] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2321), 8, + ACTIONS(2323), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76247,25 +76605,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62553] = 5, + [62873] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2240), 1, + ACTIONS(2071), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2244), 1, + anon_sym_EQ, 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, + anon_sym_SEMI, + [62887] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2250), 8, + ACTIONS(2325), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76274,56 +76629,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62587] = 2, + [62901] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2323), 8, - anon_sym_RPAREN, + ACTIONS(1558), 8, 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_EQ, 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(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, + anon_sym_COLON2, + sym_type_conversion, + [62915] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2343), 8, + ACTIONS(2327), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76332,10 +76653,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62663] = 2, + [62929] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2345), 8, + ACTIONS(2329), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76344,10 +76665,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62677] = 2, + [62943] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2347), 8, + ACTIONS(2331), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76356,23 +76677,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62691] = 3, + [62957] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2351), 1, - anon_sym_PIPE, - ACTIONS(2349), 7, - anon_sym_RPAREN, + ACTIONS(2335), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, + 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, - [62707] = 2, + [62975] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2353), 8, + ACTIONS(2255), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76381,110 +76703,157 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62721] = 4, + [62989] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2184), 6, - sym__newline, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2337), 1, anon_sym_from, + ACTIONS(2339), 1, anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2341), 2, + sym__newline, anon_sym_SEMI, - [62739] = 5, + [63015] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2343), 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, + [63029] = 5, 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(2234), 5, + ACTIONS(2238), 5, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [62759] = 5, + [63049] = 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(2345), 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, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62779] = 7, + [63063] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + ACTIONS(2347), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63077] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2349), 8, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2266), 3, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63091] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2351), 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, - [62803] = 5, + [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(2176), 5, - sym__newline, - anon_sym_from, + ACTIONS(2311), 5, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62823] = 3, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63125] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2164), 7, - sym__newline, - anon_sym_from, + ACTIONS(2071), 8, anon_sym_COMMA, anon_sym_if, + anon_sym_RBRACE, anon_sym_EQ, + anon_sym_and, anon_sym_or, - anon_sym_SEMI, - [62839] = 4, + anon_sym_COLON2, + sym_type_conversion, + [63139] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2353), 1, + anon_sym_async, + ACTIONS(2355), 1, + anon_sym_def, + ACTIONS(2357), 1, + 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(2164), 6, + ACTIONS(2176), 7, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_EQ, + anon_sym_or, 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,263 +76893,371 @@ 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, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2212), 6, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2180), 1, + 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(2182), 1, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2200), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63299] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + 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, - ACTIONS(2371), 5, + [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, - [62967] = 5, + [63365] = 5, ACTIONS(3), 1, sym_comment, - 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, - ACTIONS(2371), 5, + 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(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(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(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, - anon_sym_COMMA, + ACTIONS(2262), 1, anon_sym_if, - anon_sym_EQ, + ACTIONS(2266), 1, anon_sym_and, + ACTIONS(2268), 1, anon_sym_or, - anon_sym_SEMI, - [63021] = 4, + 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(2154), 1, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2104), 1, anon_sym_or, - ACTIONS(2373), 6, - anon_sym_RPAREN, - anon_sym_if, + ACTIONS(2214), 5, + anon_sym_COMMA, + anon_sym_COLON, anon_sym_async, anon_sym_for, - anon_sym_RBRACK, anon_sym_RBRACE, - [63039] = 4, + [63467] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2115), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2184), 6, + ACTIONS(2190), 6, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_RBRACE, - [63057] = 5, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63485] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2115), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2196), 5, + ACTIONS(2176), 7, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, + anon_sym_if, anon_sym_RBRACE, - [63077] = 4, + anon_sym_EQ, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [63501] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2115), 1, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2104), 1, anon_sym_or, - ACTIONS(2200), 6, + ACTIONS(2186), 5, anon_sym_COMMA, - anon_sym_if, anon_sym_COLON, anon_sym_async, anon_sym_for, anon_sym_RBRACE, - [63095] = 3, + [63521] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2115), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2164), 7, + ACTIONS(2268), 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, - anon_sym_or, - [63111] = 4, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63539] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2115), 1, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2164), 6, + ACTIONS(2214), 5, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_RBRACE, - [63129] = 5, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63559] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2105), 1, + ACTIONS(2262), 1, anon_sym_if, - ACTIONS(2115), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2176), 5, + ACTIONS(2319), 5, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_RBRACE, - [63149] = 5, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63579] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2105), 1, + ACTIONS(2262), 1, anon_sym_if, - ACTIONS(2115), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2117), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2172), 5, + ACTIONS(2186), 5, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_RBRACE, - [63169] = 4, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63599] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2377), 1, - anon_sym_COMMA, - STATE(1112), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2375), 6, + 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, - [63187] = 4, + [63617] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2379), 1, + anon_sym_async, 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, + 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_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [63219] = 2, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63677] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2081), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, + 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, - [63233] = 2, + [63701] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2383), 8, + ACTIONS(2395), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76789,42 +77266,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [63247] = 8, + [63715] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2385), 1, + ACTIONS(2397), 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_finally, - STATE(611), 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(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(2393), 7, + ACTIONS(2409), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -76832,2592 +77294,2834 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [63306] = 2, + [63753] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2286), 7, + 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_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, + [63772] = 8, 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, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(279), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [63365] = 7, + 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(2303), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2327), 1, - anon_sym_COMMA, - ACTIONS(2329), 1, + ACTIONS(2299), 1, anon_sym_if, - STATE(1272), 1, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, aux_sym_expression_list_repeat1, - ACTIONS(2407), 2, + ACTIONS(2419), 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, + [63820] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2399), 1, + ACTIONS(2401), 1, anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2176), 4, + ACTIONS(2200), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_COLON, - [63430] = 7, + [63839] = 6, 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(2421), 1, + anon_sym_except, + ACTIONS(2423), 1, + anon_sym_finally, + STATE(540), 1, + sym_finally_clause, + STATE(266), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(283), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [63860] = 8, 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, - 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, + ACTIONS(2425), 1, anon_sym_COMMA, - STATE(1360), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2425), 2, - sym__newline, - anon_sym_SEMI, - [63518] = 8, + 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(2427), 1, + 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, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2228), 1, + anon_sym_RPAREN, + ACTIONS(2230), 1, anon_sym_COMMA, - anon_sym_SEMI, - [63562] = 5, + 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(2399), 1, + 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(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2172), 4, + ACTIONS(2214), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_COLON, - [63581] = 2, + [63979] = 4, 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_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2184), 5, + ACTIONS(2190), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - [63611] = 5, + [63996] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, + ACTIONS(2405), 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, + ACTIONS(2176), 6, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_and, anon_sym_or, - [63643] = 8, + [64011] = 7, 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(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, - sym_identifier, + 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_STAR, + anon_sym_as, ACTIONS(2441), 1, - anon_sym_STAR_STAR, - STATE(1483), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [63687] = 8, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64080] = 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(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, + ACTIONS(2447), 1, + anon_sym_except, + ACTIONS(2449), 1, + 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(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2194), 1, anon_sym_RPAREN, + ACTIONS(2196), 1, anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63731] = 5, + 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(2399), 1, + ACTIONS(2401), 1, anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2196), 4, + ACTIONS(2186), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_COLON, - [63750] = 7, + [64170] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, + ACTIONS(1558), 7, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2329), 1, + anon_sym_as, anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2266), 2, - sym__newline, - anon_sym_SEMI, - [63773] = 5, + anon_sym_COLON, + 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(2433), 4, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2451), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, - [63792] = 4, + [64202] = 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(1577), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [64221] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2200), 5, + ACTIONS(2176), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - [63809] = 3, + [64238] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2164), 6, - anon_sym_RPAREN, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_or, - [63824] = 8, + 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(2109), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2449), 1, - anon_sym_COMMA, - ACTIONS(2451), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1437), 1, - aux_sym_dictionary_repeat1, - STATE(1667), 1, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1728), 1, sym__comprehension_clauses, - [63849] = 4, + [64288] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2164), 5, - anon_sym_RPAREN, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63866] = 5, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2453), 4, + ACTIONS(2459), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [63885] = 5, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64326] = 8, 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(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(2395), 1, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2461), 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(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(2395), 1, + ACTIONS(2397), 1, anon_sym_COMMA, - ACTIONS(2399), 1, + ACTIONS(2401), 1, anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2459), 1, + ACTIONS(2465), 1, anon_sym_as, - ACTIONS(2461), 1, + ACTIONS(2467), 1, anon_sym_COLON, - STATE(1342), 1, + STATE(1364), 1, aux_sym_exception_list_repeat1, - [63954] = 6, + [64401] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2399), 1, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2465), 1, + ACTIONS(2469), 1, anon_sym_as, - ACTIONS(2463), 3, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2471), 1, anon_sym_COLON, - [63975] = 7, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64426] = 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(2327), 1, - anon_sym_COMMA, - ACTIONS(2329), 1, + ACTIONS(2299), 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, + ACTIONS(2339), 1, anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, + STATE(1288), 1, aux_sym_expression_list_repeat1, - ACTIONS(2469), 2, + ACTIONS(2276), 2, sym__newline, anon_sym_SEMI, - [64021] = 2, + [64449] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2471), 7, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2232), 1, anon_sym_RPAREN, + ACTIONS(2234), 1, anon_sym_COMMA, - anon_sym_if, + 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, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64034] = 6, + 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, + anon_sym_DOT, + ACTIONS(2477), 1, + 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(2395), 1, - anon_sym_COMMA, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - 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(1606), 7, + 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, - 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(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(2473), 1, + ACTIONS(2447), 1, anon_sym_except, - ACTIONS(2475), 1, + ACTIONS(2449), 1, anon_sym_finally, - STATE(608), 1, + STATE(533), 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, + STATE(278), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [64581] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2481), 1, - anon_sym_COMMA, - ACTIONS(2483), 1, - anon_sym_RBRACE, - STATE(1091), 1, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, sym_for_in_clause, - STATE(1501), 1, - aux_sym_dictionary_repeat1, - STATE(1678), 1, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1628), 1, sym__comprehension_clauses, - [64158] = 3, + [64606] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2487), 1, - anon_sym_as, - ACTIONS(2485), 6, - anon_sym_RPAREN, + 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, - [64173] = 7, + 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(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, - anon_sym_COMMA, - STATE(1354), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2489), 2, + ACTIONS(2311), 4, sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_SEMI, - [64196] = 4, + [64650] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2491), 1, - anon_sym_DOT, - STATE(1224), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2493), 4, + 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_as, anon_sym_SEMI, - [64212] = 4, + [64669] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2497), 1, - anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(2495), 4, - anon_sym_RPAREN, + ACTIONS(2262), 1, 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(2502), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64244] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2504), 1, - anon_sym_COMMA, - STATE(1233), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2502), 4, + 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, - [64260] = 2, + [64688] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2160), 6, + ACTIONS(2288), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [64272] = 4, + [64701] = 7, 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, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2479), 1, anon_sym_COMMA, - anon_sym_as, - [64288] = 6, + STATE(1380), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2481), 2, + sym__newline, + anon_sym_SEMI, + [64724] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + 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(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, + ACTIONS(2483), 4, anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [64324] = 5, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [64743] = 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(2512), 3, - sym__newline, + ACTIONS(2485), 1, anon_sym_COMMA, + STATE(1401), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2487), 2, + sym__newline, anon_sym_SEMI, - [64342] = 3, - ACTIONS(2077), 1, + [64766] = 8, + ACTIONS(3), 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(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(1711), 1, + sym__comprehension_clauses, + [64791] = 8, 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, + ACTIONS(2090), 1, anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACK, - [64376] = 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(2083), 1, - anon_sym_DOT, - STATE(1222), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2493), 4, - anon_sym_import, + 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(1717), 1, + sym__comprehension_clauses, + [64841] = 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(1673), 1, + sym__comprehension_clauses, + [64866] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, - [64392] = 5, + 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(1675), 1, + sym__comprehension_clauses, + [64891] = 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(2524), 3, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2489), 4, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_RBRACK, + anon_sym_COLON, anon_sym_EQ, - [64410] = 3, - ACTIONS(2077), 1, + [64910] = 8, + ACTIONS(3), 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, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1231), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2530), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACE, - [64440] = 7, + 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(2178), 1, + ACTIONS(2071), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - ACTIONS(2180), 1, + anon_sym_COLON, 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, + [64948] = 5, 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(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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2357), 1, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, anon_sym_COMMA, - ACTIONS(2538), 1, - anon_sym_COLON, - STATE(1250), 1, + STATE(1288), 1, aux_sym_expression_list_repeat1, - [64500] = 5, + ACTIONS(2491), 2, + sym__newline, + anon_sym_SEMI, + [64990] = 8, 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, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2493), 1, anon_sym_COMMA, - anon_sym_COLON, - [64518] = 6, + 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(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, + ACTIONS(2276), 7, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - [64538] = 7, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65028] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + 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(2357), 1, + ACTIONS(2319), 4, anon_sym_COMMA, - ACTIONS(2546), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64560] = 7, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [65047] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2357), 1, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, anon_sym_COMMA, - ACTIONS(2548), 1, - anon_sym_COLON, - STATE(1250), 1, + STATE(1288), 1, aux_sym_expression_list_repeat1, - [64582] = 2, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [65070] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2550), 6, + 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, - [64594] = 5, + [65085] = 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(2552), 3, + 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, - [64612] = 7, + [65124] = 4, 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, + ACTIONS(2510), 1, anon_sym_COMMA, - ACTIONS(2554), 1, - anon_sym_COLON, - STATE(1250), 1, + STATE(1249), 1, aux_sym_expression_list_repeat1, - [64634] = 5, + ACTIONS(2508), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65140] = 6, 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(2556), 3, + ACTIONS(2514), 1, + anon_sym_COLON, + ACTIONS(2512), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [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, - [64652] = 5, + [65176] = 6, 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(2453), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, - [64670] = 5, + ACTIONS(2522), 1, + anon_sym_COLON, + ACTIONS(2520), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65196] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2558), 3, - anon_sym_RPAREN, + 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, + anon_sym_BSLASH, + ACTIONS(2528), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65228] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2532), 1, anon_sym_COMMA, + STATE(1249), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, + anon_sym_RPAREN, anon_sym_COLON, - [64688] = 7, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65244] = 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(2357), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, anon_sym_COMMA, - ACTIONS(2560), 1, + ACTIONS(2535), 1, anon_sym_COLON, - STATE(1250), 1, + STATE(1243), 1, aux_sym_expression_list_repeat1, - [64710] = 7, + [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, + [65282] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2537), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2539), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [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(2357), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, anon_sym_COMMA, - ACTIONS(2562), 1, + ACTIONS(2541), 1, anon_sym_COLON, - STATE(1250), 1, + STATE(1243), 1, aux_sym_expression_list_repeat1, - [64732] = 4, + [65318] = 6, 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, + 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, - anon_sym_RBRACE, - [64748] = 6, + [65338] = 5, 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(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(2568), 1, + ACTIONS(2106), 1, anon_sym_DOT, - STATE(1249), 1, + STATE(1039), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2063), 4, - sym__newline, + ACTIONS(2551), 4, + anon_sym_import, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, - anon_sym_SEMI, - [64784] = 4, + [65372] = 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, - anon_sym_BSLASH, - ACTIONS(2579), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64828] = 5, + ACTIONS(2555), 1, + anon_sym_AT, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + ACTIONS(2553), 3, + anon_sym_async, + anon_sym_def, + anon_sym_class, + [65388] = 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(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [64846] = 3, - ACTIONS(2077), 1, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + [65410] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2583), 2, + ACTIONS(2558), 2, anon_sym_LBRACE2, anon_sym_BSLASH, - ACTIONS(2585), 4, + ACTIONS(2560), 4, sym__string_content, sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64860] = 3, - ACTIONS(2077), 1, + [65424] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2587), 2, + ACTIONS(2562), 2, anon_sym_LBRACE2, anon_sym_BSLASH, - ACTIONS(2589), 4, + ACTIONS(2564), 4, sym__string_content, sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64874] = 6, + [65438] = 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(2593), 1, - anon_sym_COLON, - ACTIONS(2591), 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2566), 3, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_RBRACK, - [64894] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2597), 1, - anon_sym_AT, - STATE(1257), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - ACTIONS(2595), 3, - anon_sym_async, - anon_sym_def, - anon_sym_class, - [64910] = 5, + anon_sym_COLON, + [65456] = 4, 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, + 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_RBRACK, - [64927] = 2, + anon_sym_as, + anon_sym_SEMI, + [65472] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2602), 5, + ACTIONS(2110), 6, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, anon_sym_COLON, anon_sym_RBRACK, - [64938] = 5, + anon_sym_RBRACE, + [65484] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2182), 1, anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2570), 1, + anon_sym_COLON, + ACTIONS(2568), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65504] = 7, + ACTIONS(3), 1, + sym_comment, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2417), 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, anon_sym_COMMA, - anon_sym_RBRACE, - [64955] = 5, + ACTIONS(2572), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65526] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + ACTIONS(2401), 1, anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2405), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2604), 2, + ACTIONS(2574), 3, anon_sym_COMMA, - anon_sym_RBRACK, - [64972] = 2, + anon_sym_as, + anon_sym_COLON, + [65544] = 5, 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(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(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, + [65616] = 5, 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(2610), 2, + ACTIONS(2489), 3, sym__newline, + anon_sym_EQ, anon_sym_SEMI, - [65034] = 2, + [65634] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2371), 5, + ACTIONS(2585), 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, - [65045] = 4, + [65650] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2614), 1, + ACTIONS(2587), 1, anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2612), 3, + 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, - 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, + [65666] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2618), 1, + ACTIONS(2589), 1, + anon_sym_COMMA, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, 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, - [65096] = 5, + [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(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(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, + ACTIONS(2393), 1, anon_sym_COMMA, - STATE(1284), 1, + ACTIONS(2595), 1, + anon_sym_COLON, + STATE(1243), 1, aux_sym_expression_list_repeat1, - ACTIONS(2502), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [65147] = 6, + [65718] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, - ACTIONS(2634), 1, + 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, - ACTIONS(2636), 1, - anon_sym_LBRACK, - STATE(1463), 1, - sym_type_parameters, - STATE(1611), 1, - sym_argument_list, - [65166] = 5, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65740] = 5, 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(2433), 2, + ACTIONS(2599), 3, sym__newline, + anon_sym_COMMA, anon_sym_SEMI, - [65183] = 5, + [65758] = 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(2638), 2, - anon_sym_RPAREN, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, anon_sym_COMMA, - [65200] = 5, + ACTIONS(2601), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65780] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + 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, - ACTIONS(2180), 1, - anon_sym_and, + 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(2640), 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2614), 2, anon_sym_COMMA, anon_sym_RBRACK, - [65217] = 5, + [65839] = 5, 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(2642), 2, + ACTIONS(2616), 2, sym__newline, anon_sym_SEMI, - [65234] = 4, + [65856] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2644), 1, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(2620), 1, + anon_sym_COLON, + ACTIONS(2622), 1, + 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, 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, - [65249] = 6, - ACTIONS(2077), 1, + [65890] = 6, + ACTIONS(2086), 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, + [65909] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2654), 1, + ACTIONS(2632), 1, anon_sym_COMMA, - ACTIONS(2656), 1, - anon_sym_as, - STATE(1322), 1, - aux_sym__import_list_repeat1, - ACTIONS(2658), 2, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 3, sym__newline, + anon_sym_from, 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, + [65924] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, + ACTIONS(2634), 1, + anon_sym_RBRACE, 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_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(2664), 1, + ACTIONS(2642), 1, anon_sym_COMMA, - STATE(1284), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2530), 3, + ACTIONS(2644), 1, + anon_sym_as, + STATE(1336), 1, + aux_sym__import_list_repeat1, + ACTIONS(2646), 2, sym__newline, - anon_sym_from, anon_sym_SEMI, - [65353] = 5, + [65960] = 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(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(2612), 3, + ACTIONS(2311), 5, anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [65385] = 4, + [65971] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2673), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2483), 2, 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, - anon_sym_LBRACE2, - ACTIONS(2681), 1, - aux_sym_format_specifier_token1, - STATE(1288), 1, - aux_sym_format_specifier_repeat1, - STATE(1446), 1, - sym_interpolation, - [65419] = 5, + [65988] = 2, 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, + ACTIONS(2075), 5, sym__newline, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_as, anon_sym_SEMI, - [65436] = 4, + [65999] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1286), 1, + STATE(1309), 1, aux_sym__collection_elements_repeat1, - ACTIONS(2113), 3, + ACTIONS(2100), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [65451] = 6, + [66014] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, + 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(2686), 1, + ACTIONS(2650), 1, anon_sym_RBRACE, - ACTIONS(2688), 1, + ACTIONS(2652), 1, anon_sym_EQ, - ACTIONS(2690), 1, + ACTIONS(2654), 1, sym_type_conversion, - STATE(1718), 1, + STATE(1651), 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, + [66050] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2495), 5, + 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, - anon_sym_COLON, - anon_sym_RBRACK, - [65500] = 2, + ACTIONS(2658), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66084] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2063), 5, - sym__newline, - anon_sym_DOT, + ACTIONS(2660), 1, anon_sym_COMMA, - anon_sym_as, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 3, + sym__newline, + anon_sym_from, anon_sym_SEMI, - [65511] = 5, + [66099] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2427), 1, + ACTIONS(2413), 1, sym_identifier, - STATE(1326), 1, + STATE(1329), 1, sym_dotted_name, - STATE(1381), 1, + STATE(1428), 1, sym_aliased_import, - ACTIONS(2608), 2, + ACTIONS(2663), 2, sym__newline, anon_sym_SEMI, - [65528] = 5, + [66116] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, + 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, - ACTIONS(2608), 1, - anon_sym_RPAREN, - STATE(1473), 1, + STATE(1329), 1, sym_dotted_name, - STATE(1553), 1, + STATE(1428), 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, + ACTIONS(2665), 2, sym__newline, anon_sym_SEMI, - [65558] = 4, + [66144] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2696), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2667), 2, anon_sym_COMMA, - STATE(1321), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2700), 2, - sym__newline, - anon_sym_SEMI, - [65572] = 5, + anon_sym_RBRACK, + [66161] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2702), 1, - anon_sym_SEMI, - ACTIONS(2704), 1, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2663), 2, sym__newline, - STATE(129), 1, - sym__semicolon, - STATE(1300), 1, - aux_sym__simple_statements_repeat1, - [65588] = 5, + anon_sym_SEMI, + [66178] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2669), 1, + anon_sym_RBRACE, + ACTIONS(2671), 1, + anon_sym_LBRACE2, + ACTIONS(2674), 1, + aux_sym_format_specifier_token1, + STATE(1305), 1, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [66197] = 6, 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(2413), 1, + sym_identifier, + ACTIONS(2677), 1, + anon_sym_LPAREN, + 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(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(2603), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [66227] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2714), 1, + ACTIONS(2681), 1, anon_sym_COMMA, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - ACTIONS(2712), 2, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, anon_sym_RPAREN, - anon_sym_COLON, - [65634] = 4, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66242] = 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(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(2717), 1, - anon_sym_case, - STATE(512), 1, - sym_cases, - STATE(451), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65662] = 5, + 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(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(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(2178), 1, + ACTIONS(2692), 5, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2180), 1, + anon_sym_COLON, + anon_sym_RBRACK, + [66298] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2721), 1, - anon_sym_else, - [65694] = 5, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2694), 2, + sym__newline, + anon_sym_SEMI, + [66315] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2723), 1, + ACTIONS(2618), 1, anon_sym_LPAREN, - STATE(1538), 1, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2696), 1, + anon_sym_COLON, + STATE(1491), 1, sym_type_parameters, - STATE(1539), 1, - sym_parameters, - [65710] = 5, - ACTIONS(3), 1, + STATE(1626), 1, + sym_argument_list, + [66334] = 6, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2725), 1, + ACTIONS(2628), 1, + anon_sym_LBRACE2, + ACTIONS(2698), 1, anon_sym_RBRACE, - ACTIONS(2727), 1, - sym_type_conversion, - STATE(1733), 1, - sym_format_specifier, - [65726] = 5, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + 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(2729), 1, - anon_sym_COLON, - [65742] = 4, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66387] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2696), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2704), 2, anon_sym_COMMA, - STATE(1297), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2731), 2, + 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, - [65756] = 4, + [66421] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2735), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2708), 2, anon_sym_COMMA, - STATE(1330), 1, - aux_sym__patterns_repeat1, - ACTIONS(2733), 2, - anon_sym_RPAREN, anon_sym_RBRACK, - [65770] = 5, + [66438] = 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(2737), 1, - anon_sym_COLON, - [65786] = 5, + 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(1322), 1, + aux_sym__simple_statements_repeat1, + [66471] = 4, + ACTIONS(3), 1, + sym_comment, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2739), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2723), 1, anon_sym_COLON, - [65802] = 4, + [66515] = 5, 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(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(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(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(2741), 1, - anon_sym_SEMI, - ACTIONS(2744), 1, + ACTIONS(567), 1, sym__newline, - STATE(133), 1, + ACTIONS(2727), 1, + anon_sym_SEMI, + STATE(128), 1, sym__semicolon, - STATE(1316), 1, + STATE(1322), 1, aux_sym__simple_statements_repeat1, - [65846] = 2, + [66561] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2371), 4, + 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, - anon_sym_COMMA, - ACTIONS(2752), 1, - anon_sym_as, - STATE(1409), 1, - aux_sym__import_list_repeat1, - [65888] = 4, + 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(2754), 1, + ACTIONS(2737), 1, anon_sym_COMMA, - STATE(1328), 1, - aux_sym__import_list_repeat1, - ACTIONS(2756), 2, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2740), 2, sym__newline, anon_sym_SEMI, - [65902] = 4, + [66619] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2758), 1, + ACTIONS(2744), 1, + anon_sym_EQ, + ACTIONS(2742), 3, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1321), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2761), 2, + 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, + ACTIONS(2750), 2, sym__newline, anon_sym_SEMI, - [65916] = 4, + [66659] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2763), 1, + ACTIONS(2752), 1, anon_sym_COMMA, - STATE(1328), 1, + STATE(1339), 1, aux_sym__import_list_repeat1, - ACTIONS(2756), 2, + ACTIONS(2750), 2, sym__newline, anon_sym_SEMI, - [65930] = 4, + [66673] = 5, 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, + ACTIONS(2580), 1, sym_identifier, - [65944] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2772), 1, - anon_sym_COLON, - ACTIONS(2774), 1, - anon_sym_EQ, - ACTIONS(2770), 2, + ACTIONS(2663), 1, anon_sym_RPAREN, - anon_sym_COMMA, - [65958] = 3, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66689] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2778), 1, - anon_sym_EQ, - ACTIONS(2776), 3, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2663), 1, 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, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66705] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2784), 1, + ACTIONS(2754), 1, anon_sym_COMMA, - STATE(1328), 1, + STATE(1339), 1, aux_sym__import_list_repeat1, - ACTIONS(2787), 2, + ACTIONS(2757), 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, + [66719] = 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(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(2566), 1, + ACTIONS(2580), 1, sym_identifier, - STATE(1319), 1, + STATE(1362), 1, sym_dotted_name, - STATE(1487), 1, + STATE(1467), 1, sym_aliased_import, - STATE(1713), 1, + STATE(1670), 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, + [66749] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, + ACTIONS(2580), 1, sym_identifier, - STATE(1319), 1, + STATE(1362), 1, sym_dotted_name, - STATE(1487), 1, + STATE(1467), 1, sym_aliased_import, - STATE(1717), 1, + STATE(1671), 1, sym__import_list, - [66088] = 5, + [66765] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, + ACTIONS(2761), 1, + anon_sym_DOT, + STATE(1352), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2759), 2, + anon_sym_import, sym_identifier, - ACTIONS(2684), 1, + [66779] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2763), 4, anon_sym_RPAREN, - STATE(1473), 1, - sym_dotted_name, - STATE(1553), 1, - sym_aliased_import, - [66104] = 5, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66789] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(563), 1, + ACTIONS(2765), 1, + anon_sym_SEMI, + ACTIONS(2767), 1, sym__newline, - ACTIONS(2802), 1, + 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, - STATE(130), 1, + ACTIONS(2771), 1, + sym__newline, + STATE(127), 1, sym__semicolon, - STATE(1316), 1, + STATE(1399), 1, aux_sym__simple_statements_repeat1, - [66120] = 5, + [66821] = 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(2804), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2773), 1, anon_sym_else, - [66136] = 5, + [66837] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2775), 1, + anon_sym_COMMA, + STATE(1348), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2778), 2, + anon_sym_as, + anon_sym_COLON, + [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(2806), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2782), 1, anon_sym_COLON, - [66152] = 4, + [66877] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2808), 1, - anon_sym_COMMA, - STATE(1363), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2810), 2, + ACTIONS(565), 1, sym__newline, + ACTIONS(2784), 1, anon_sym_SEMI, - [66166] = 5, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2812), 1, - anon_sym_COLON, - [66182] = 4, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2791), 1, + anon_sym_else, + [66923] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2814), 1, + ACTIONS(2411), 4, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(1888), 2, - anon_sym_if, - anon_sym_COLON, - [66196] = 2, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66933] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2816), 4, - anon_sym_RPAREN, + 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, - [66206] = 4, + ACTIONS(2799), 1, + sym_type_conversion, + STATE(1741), 1, + sym_format_specifier, + [66963] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2395), 1, + 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, - STATE(1329), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2818), 2, - anon_sym_as, anon_sym_COLON, - [66220] = 5, + anon_sym_EQ, + [66989] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2182), 1, anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2801), 1, + anon_sym_COLON, + [67005] = 4, + ACTIONS(3), 1, + sym_comment, + 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(2820), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2807), 1, anon_sym_else, - [66236] = 2, + [67035] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2453), 4, + ACTIONS(2646), 1, anon_sym_RPAREN, + ACTIONS(2809), 1, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [66246] = 5, + ACTIONS(2811), 1, + anon_sym_as, + STATE(1415), 1, + aux_sym__import_list_repeat1, + [67051] = 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(2813), 1, + anon_sym_COLON, + [67067] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2824), 4, - anon_sym_async, - anon_sym_def, - anon_sym_class, - anon_sym_AT, - [66272] = 5, + 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(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(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(2447), 4, - anon_sym_RPAREN, + ACTIONS(2819), 1, anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [66298] = 5, + STATE(1394), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2821), 2, + sym__newline, + anon_sym_SEMI, + [67111] = 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(2826), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2823), 1, anon_sym_else, - [66314] = 4, + [67127] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2828), 1, + ACTIONS(2825), 1, anon_sym_COMMA, - STATE(1363), 1, + STATE(1368), 1, aux_sym_print_statement_repeat1, - ACTIONS(2830), 2, + ACTIONS(2828), 2, sym__newline, anon_sym_SEMI, - [66328] = 5, + [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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2832), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2830), 1, anon_sym_COLON, - [66344] = 5, + [67171] = 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(2834), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2832), 1, anon_sym_COLON, - [66360] = 4, + [67187] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2696), 1, + ACTIONS(2834), 1, anon_sym_COMMA, - STATE(1298), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2836), 2, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2549), 2, sym__newline, anon_sym_SEMI, - [66374] = 4, + [67201] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2423), 1, + 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, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2838), 2, - sym__newline, - anon_sym_SEMI, - [66388] = 5, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2840), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2839), 1, anon_sym_COLON, - [66404] = 5, + [67259] = 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(2842), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2841), 1, anon_sym_COLON, - [66420] = 5, + [67275] = 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(2844), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2843), 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, + [67291] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1512), 1, - sym_type_parameters, - STATE(1587), 1, - sym_parameters, - [66468] = 4, + 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(2423), 1, + ACTIONS(2847), 1, anon_sym_COMMA, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2846), 2, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2849), 2, sym__newline, anon_sym_SEMI, - [66482] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1281), 1, - sym_dotted_name, - STATE(1372), 1, - sym_aliased_import, - STATE(1577), 1, - sym__import_list, - [66498] = 5, + [67319] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2427), 1, + ACTIONS(2580), 1, sym_identifier, - STATE(1281), 1, + STATE(1362), 1, sym_dotted_name, - STATE(1372), 1, + STATE(1467), 1, sym_aliased_import, - STATE(1513), 1, + STATE(1625), 1, sym__import_list, - [66514] = 4, + [67335] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2848), 1, + ACTIONS(2851), 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, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(1902), 2, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2853), 1, anon_sym_COLON, - [66544] = 4, + [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, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2556), 2, - sym__newline, - anon_sym_SEMI, - [66558] = 5, + [67363] = 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(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(2860), 1, - anon_sym_case, - STATE(574), 1, - sym_cases, - STATE(437), 2, - sym_case_block, - aux_sym_cases_repeat1, - [66588] = 4, + 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(2860), 1, - anon_sym_case, - STATE(578), 1, - sym_cases, - STATE(437), 2, - sym_case_block, - aux_sym_cases_repeat1, - [66602] = 5, + 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(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2862), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2861), 1, anon_sym_else, - [66618] = 4, + [67427] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2864), 1, + ACTIONS(2819), 1, anon_sym_COMMA, - STATE(1338), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2866), 2, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2863), 2, sym__newline, anon_sym_SEMI, - [66632] = 4, + [67441] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2522), 1, + ACTIONS(2547), 1, anon_sym_EQ, - STATE(1589), 1, + STATE(1575), 1, sym__type_param_default, - ACTIONS(2868), 2, + ACTIONS(2865), 2, anon_sym_COMMA, anon_sym_RBRACK, - [66646] = 4, + [67455] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2654), 1, + ACTIONS(2485), 1, anon_sym_COMMA, - STATE(1320), 1, - aux_sym__import_list_repeat1, - ACTIONS(2658), 2, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2867), 2, sym__newline, anon_sym_SEMI, - [66660] = 4, + [67469] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2522), 1, - anon_sym_EQ, - STATE(1527), 1, - sym__type_param_default, - ACTIONS(2870), 2, + ACTIONS(2869), 4, + anon_sym_async, + anon_sym_def, + anon_sym_class, + anon_sym_AT, + [67479] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [66674] = 4, + STATE(1388), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2871), 2, + sym__newline, + anon_sym_SEMI, + [67493] = 2, 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(2311), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + 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, + [67517] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2636), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2875), 1, + anon_sym_COLON, + [67533] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, anon_sym_LBRACK, - ACTIONS(2723), 1, + ACTIONS(2877), 1, anon_sym_LPAREN, - STATE(1543), 1, - sym_parameters, - STATE(1582), 1, + STATE(1574), 1, sym_type_parameters, - [66704] = 5, + STATE(1612), 1, + sym_parameters, + [67549] = 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(1545), 1, + STATE(1538), 1, sym_parameters, - STATE(1583), 1, + STATE(1597), 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, + [67565] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2884), 3, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [66766] = 2, + STATE(1541), 1, + sym_parameters, + STATE(1599), 1, + sym_type_parameters, + [67581] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2780), 3, + ACTIONS(561), 1, sym__newline, - anon_sym_COMMA, + ACTIONS(2879), 1, anon_sym_SEMI, - [66775] = 4, + STATE(132), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [67597] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2886), 1, + ACTIONS(2883), 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, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + ACTIONS(2881), 2, anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_COLON, - [66797] = 4, + [67611] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2168), 1, - anon_sym_RPAREN, - ACTIONS(2170), 1, + ACTIONS(2485), 1, anon_sym_COMMA, - STATE(1397), 1, - aux_sym_argument_list_repeat1, - [66810] = 4, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2886), 2, + sym__newline, + anon_sym_SEMI, + [67625] = 5, 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(2888), 1, + anon_sym_SEMI, + ACTIONS(2890), 1, + sym__newline, + STATE(130), 1, + sym__semicolon, + STATE(1328), 1, + aux_sym__simple_statements_repeat1, + [67641] = 5, 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(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(2216), 1, - anon_sym_RPAREN, - ACTIONS(2218), 1, + ACTIONS(2892), 1, anon_sym_COMMA, - STATE(1434), 1, - aux_sym_argument_list_repeat1, - [66849] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1526), 3, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2894), 2, sym__newline, - anon_sym_in, anon_sym_SEMI, - [66858] = 2, + [67671] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2776), 3, - anon_sym_RPAREN, + ACTIONS(2031), 1, anon_sym_COMMA, - anon_sym_COLON, - [66867] = 4, + ACTIONS(2896), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [67684] = 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, - anon_sym_COMMA, - ACTIONS(2214), 1, + ACTIONS(2853), 3, anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [66939] = 4, + anon_sym_COMMA, + 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(2926), 1, + ACTIONS(2750), 1, anon_sym_RPAREN, - ACTIONS(2928), 1, + ACTIONS(2926), 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, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67793] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2930), 1, + ACTIONS(2750), 1, anon_sym_RPAREN, - ACTIONS(2932), 1, + ACTIONS(2928), 1, anon_sym_COMMA, - STATE(1399), 1, - aux_sym_argument_list_repeat1, - [67030] = 4, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67806] = 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(2622), 1, + anon_sym_LBRACK, + ACTIONS(2930), 1, + anon_sym_EQ, + STATE(1738), 1, + sym_type_parameters, + [67819] = 2, 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, + ACTIONS(2936), 1, + sym_identifier, + ACTIONS(2938), 1, anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [67854] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2938), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, anon_sym_COMMA, - STATE(1475), 1, - aux_sym__import_list_repeat1, - [67082] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67867] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2443), 1, + ACTIONS(2938), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, anon_sym_COMMA, - ACTIONS(2445), 1, - anon_sym_RBRACE, - STATE(1412), 1, - aux_sym_dictionary_repeat1, - [67095] = 4, + STATE(1429), 1, + aux_sym_match_class_pattern_repeat2, + [67880] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - ACTIONS(2087), 1, + ACTIONS(1340), 3, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, - STATE(1033), 1, - aux_sym_match_value_pattern_repeat1, - [67108] = 4, + [67889] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2756), 1, - anon_sym_RPAREN, - ACTIONS(2940), 1, + ACTIONS(1997), 1, + anon_sym_RBRACE, + ACTIONS(2942), 1, anon_sym_COMMA, - STATE(1475), 1, - aux_sym__import_list_repeat1, - [67121] = 4, + STATE(1477), 1, + aux_sym_match_mapping_pattern_repeat1, + [67902] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2057), 1, - anon_sym_COLON, - ACTIONS(2942), 1, + ACTIONS(1916), 1, + anon_sym_RPAREN, + ACTIONS(2944), 1, anon_sym_COMMA, - STATE(1386), 1, - aux_sym__parameters_repeat1, - [67134] = 4, + STATE(1420), 1, + aux_sym_match_class_pattern_repeat2, + [67915] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, + ACTIONS(2740), 3, + sym__newline, anon_sym_COMMA, - ACTIONS(2944), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67147] = 4, + anon_sym_SEMI, + [67924] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2936), 1, + sym_identifier, ACTIONS(2946), 1, - anon_sym_COMMA, - ACTIONS(2948), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [67160] = 4, + 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, - ACTIONS(2952), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [67173] = 3, - ACTIONS(2077), 1, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [67950] = 2, + ACTIONS(3), 1, sym_comment, - ACTIONS(2573), 1, - anon_sym_RBRACE, - ACTIONS(2575), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67184] = 4, + ACTIONS(2729), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [67959] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2192), 1, + ACTIONS(2946), 1, anon_sym_RPAREN, - ACTIONS(2194), 1, + ACTIONS(2953), 1, anon_sym_COMMA, - STATE(1420), 1, - aux_sym_argument_list_repeat1, - [67197] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67972] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2954), 1, + ACTIONS(2955), 1, anon_sym_RPAREN, - ACTIONS(2956), 1, + ACTIONS(2957), 1, anon_sym_COMMA, - STATE(1422), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [67210] = 4, + [67985] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2608), 1, + anon_sym_RBRACE, + ACTIONS(2610), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67996] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2910), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2958), 1, - anon_sym_RBRACK, - STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [67223] = 4, + ACTIONS(2220), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68009] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2936), 1, + sym_identifier, ACTIONS(2960), 1, - anon_sym_COMMA, - ACTIONS(2962), 1, - anon_sym_RBRACK, - STATE(1456), 1, - aux_sym_index_expression_list_repeat1, - [67236] = 4, + anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [68022] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2409), 1, - sym_identifier, + 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_EQ, + ACTIONS(2968), 2, + sym__newline, + anon_sym_SEMI, + [68059] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2970), 3, anon_sym_RPAREN, - ACTIONS(2968), 1, anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67262] = 4, + anon_sym_COLON, + [68068] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1906), 1, + ACTIONS(2811), 1, + anon_sym_as, + ACTIONS(2729), 2, anon_sym_RPAREN, - ACTIONS(2970), 1, anon_sym_COMMA, - STATE(1462), 1, - aux_sym_match_class_pattern_repeat2, - [67275] = 4, + [68079] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2972), 1, + ACTIONS(1916), 1, anon_sym_RPAREN, - ACTIONS(2974), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67288] = 4, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [68092] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2976), 1, + ACTIONS(2757), 1, anon_sym_RPAREN, - ACTIONS(2978), 1, + ACTIONS(2972), 1, anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67301] = 4, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [68105] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2001), 1, - anon_sym_RBRACE, - ACTIONS(2980), 1, + ACTIONS(2975), 1, + anon_sym_RPAREN, + ACTIONS(2977), 1, anon_sym_COMMA, - STATE(1506), 1, - aux_sym_match_mapping_pattern_repeat1, - [67314] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68118] = 2, 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(2979), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [68127] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2481), 1, + ACTIONS(2981), 1, anon_sym_COMMA, - ACTIONS(2483), 1, - anon_sym_RBRACE, - STATE(1498), 1, - aux_sym_dictionary_repeat1, - [67340] = 4, + ACTIONS(2984), 1, + anon_sym_RBRACK, + STATE(1443), 1, + aux_sym_index_expression_list_repeat1, + [68140] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2984), 1, - anon_sym_RPAREN, ACTIONS(2986), 1, + anon_sym_RPAREN, + ACTIONS(2988), 1, anon_sym_COMMA, - STATE(1427), 1, - aux_sym_match_class_pattern_repeat1, - [67353] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68153] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2891), 1, + ACTIONS(2900), 1, anon_sym_RPAREN, - ACTIONS(2989), 1, + ACTIONS(2991), 1, anon_sym_COMMA, - STATE(1428), 1, + STATE(1483), 1, aux_sym__parameters_repeat1, - [67366] = 2, + [68166] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1530), 3, + ACTIONS(2337), 1, + anon_sym_from, + ACTIONS(2341), 2, sym__newline, - anon_sym_in, anon_sym_SEMI, - [67375] = 4, + [68177] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2190), 1, - anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [67388] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2612), 1, + ACTIONS(2129), 1, anon_sym_RPAREN, - ACTIONS(2992), 1, - anon_sym_COMMA, - STATE(1287), 1, + STATE(1471), 1, aux_sym__collection_elements_repeat1, - [67401] = 4, + [68190] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2449), 1, + ACTIONS(2993), 1, anon_sym_COMMA, - ACTIONS(2451), 1, + ACTIONS(2996), 1, anon_sym_RBRACE, - STATE(1436), 1, + STATE(1448), 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, + [68203] = 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_match_class_pattern_repeat2, - [67453] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3005), 1, - anon_sym_COMMA, - ACTIONS(3007), 1, anon_sym_RBRACE, - STATE(1482), 1, + STATE(1448), 1, aux_sym_dictionary_repeat1, - [67466] = 4, + [68216] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3009), 1, + ACTIONS(3002), 1, anon_sym_COMMA, - ACTIONS(3011), 1, + ACTIONS(3004), 1, anon_sym_RBRACE, - STATE(1482), 1, + STATE(1448), 1, aux_sym_dictionary_repeat1, - [67479] = 4, + [68229] = 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(2106), 1, + anon_sym_DOT, + ACTIONS(2170), 1, + anon_sym_COLON, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + [68242] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2204), 1, + ACTIONS(2228), 1, anon_sym_RPAREN, - ACTIONS(2206), 1, + ACTIONS(2230), 1, anon_sym_COMMA, - STATE(1445), 1, + STATE(1457), 1, aux_sym_argument_list_repeat1, - [67505] = 4, + [68255] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3017), 1, + ACTIONS(3006), 1, anon_sym_RPAREN, - ACTIONS(3019), 1, + ACTIONS(3008), 1, anon_sym_COMMA, - STATE(1447), 1, + STATE(1458), 1, aux_sym_argument_list_repeat1, - [67518] = 4, + [68268] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3021), 1, - anon_sym_RPAREN, - ACTIONS(3023), 1, + ACTIONS(3010), 1, anon_sym_COMMA, + ACTIONS(3012), 1, + anon_sym_RBRACK, STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67531] = 4, + aux_sym_index_expression_list_repeat1, + [68281] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2910), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(3025), 1, - anon_sym_RBRACK, - STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [67544] = 2, + ACTIONS(3014), 1, + anon_sym_RPAREN, + STATE(1309), 1, + aux_sym__collection_elements_repeat1, + [68294] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1427), 3, + ACTIONS(3016), 1, anon_sym_RPAREN, + ACTIONS(3018), 1, anon_sym_COMMA, - anon_sym_COLON, - [67553] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68307] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3027), 1, + ACTIONS(3020), 1, anon_sym_RPAREN, - ACTIONS(3029), 1, + ACTIONS(3022), 1, anon_sym_COMMA, - STATE(1490), 1, - aux_sym_match_class_pattern_repeat1, - [67566] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68320] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3031), 1, + ACTIONS(3024), 1, anon_sym_RPAREN, - ACTIONS(3033), 1, + ACTIONS(3026), 1, anon_sym_COMMA, - STATE(1460), 1, + STATE(1430), 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, + [68333] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3039), 1, + ACTIONS(3028), 1, anon_sym_RPAREN, - ACTIONS(3041), 1, + ACTIONS(3030), 1, anon_sym_COMMA, - STATE(1460), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [67603] = 4, + [68346] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3043), 1, - anon_sym_RPAREN, - ACTIONS(3045), 1, + ACTIONS(3032), 1, anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67616] = 4, + ACTIONS(3034), 1, + anon_sym_RBRACK, + STATE(1443), 1, + aux_sym_index_expression_list_repeat1, + [68359] = 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(2180), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68372] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(3049), 1, - anon_sym_RBRACE, + ACTIONS(2473), 1, + sym_identifier, + ACTIONS(3036), 1, + anon_sym_import, STATE(1709), 1, - sym_format_specifier, - [67642] = 2, + sym_dotted_name, + [68385] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2558), 1, + anon_sym_RBRACE, + ACTIONS(2560), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [68396] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2453), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, - [67651] = 4, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2218), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68409] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2427), 1, + ACTIONS(2580), 1, sym_identifier, - STATE(1326), 1, + STATE(1438), 1, sym_dotted_name, - STATE(1381), 1, + STATE(1600), 1, sym_aliased_import, - [67664] = 4, + [68422] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3051), 1, + ACTIONS(3038), 1, anon_sym_COMMA, - ACTIONS(3053), 1, - anon_sym_COLON, - STATE(1410), 1, - aux_sym__parameters_repeat1, - [67677] = 2, + ACTIONS(3040), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68435] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2770), 3, + ACTIONS(2646), 1, anon_sym_RPAREN, + ACTIONS(2809), 1, anon_sym_COMMA, - anon_sym_COLON, - [67686] = 4, + STATE(1414), 1, + aux_sym__import_list_repeat1, + [68448] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1521), 1, + aux_sym_argument_list_repeat1, + [68461] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1006), 1, + ACTIONS(3042), 1, anon_sym_RPAREN, - ACTIONS(3055), 1, + ACTIONS(3044), 1, anon_sym_COMMA, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - [67699] = 4, + STATE(1475), 1, + aux_sym_argument_list_repeat1, + [68474] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3057), 1, + ACTIONS(3010), 1, anon_sym_COMMA, - ACTIONS(3060), 1, + ACTIONS(3046), 1, anon_sym_RBRACK, - STATE(1456), 1, + STATE(1460), 1, aux_sym_index_expression_list_repeat1, - [67712] = 4, + [68487] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, + ACTIONS(2679), 1, + anon_sym_RPAREN, + ACTIONS(3048), 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, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + [68500] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1904), 1, + ACTIONS(3050), 1, anon_sym_RPAREN, - ACTIONS(2994), 1, - sym_identifier, - STATE(1551), 1, - sym_match_keyword_pattern, - [67749] = 4, + ACTIONS(3052), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68513] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3064), 1, + ACTIONS(3054), 1, anon_sym_RPAREN, - ACTIONS(3066), 1, + ACTIONS(3056), 1, anon_sym_COMMA, - STATE(1460), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [67762] = 4, + [68526] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2994), 1, - sym_identifier, - ACTIONS(3069), 1, + 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, - STATE(1551), 1, - sym_match_keyword_pattern, - [67775] = 4, + ACTIONS(3064), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68552] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3069), 1, + ACTIONS(3066), 1, anon_sym_RPAREN, - ACTIONS(3071), 1, + ACTIONS(3068), 1, anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [67788] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68565] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, + ACTIONS(3070), 1, + anon_sym_COMMA, 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, + 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_in, - ACTIONS(3077), 2, - sym__newline, - anon_sym_SEMI, - [67823] = 4, + anon_sym_COLON, + STATE(1474), 1, + aux_sym_with_clause_repeat1, + [68591] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, + ACTIONS(3077), 1, + anon_sym_COMMA, ACTIONS(3079), 1, - anon_sym_EQ, - STATE(1665), 1, - sym_type_parameters, - [67836] = 4, + 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_if, - ACTIONS(3083), 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, - STATE(1592), 1, - sym_guard, - [67849] = 4, + ACTIONS(3083), 1, + anon_sym_COMMA, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68630] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3069), 1, + ACTIONS(2194), 1, anon_sym_RPAREN, - ACTIONS(3071), 1, + ACTIONS(2196), 1, anon_sym_COMMA, - STATE(1474), 1, - aux_sym_match_class_pattern_repeat2, - [67862] = 4, + STATE(1473), 1, + aux_sym_argument_list_repeat1, + [68643] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, - anon_sym_COMMA, + ACTIONS(2067), 1, + anon_sym_RPAREN, ACTIONS(3085), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67875] = 4, + anon_sym_COMMA, + STATE(1519), 1, + aux_sym__parameters_repeat1, + [68656] = 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, + 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(2994), 1, - sym_identifier, - ACTIONS(3089), 1, + ACTIONS(1546), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [68678] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2222), 1, anon_sym_RPAREN, - STATE(1551), 1, - sym_match_keyword_pattern, - [67901] = 4, + 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, - ACTIONS(3093), 1, - anon_sym_RBRACK, - STATE(1403), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67914] = 3, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68704] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2752), 1, - anon_sym_as, - ACTIONS(2780), 2, + ACTIONS(3094), 1, anon_sym_RPAREN, + ACTIONS(3096), 1, anon_sym_COMMA, - [67925] = 4, + STATE(1500), 1, + aux_sym_match_class_pattern_repeat1, + [68717] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3089), 1, - anon_sym_RPAREN, - ACTIONS(3095), 1, + ACTIONS(3098), 1, anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [67938] = 4, + ACTIONS(3100), 1, + anon_sym_RBRACK, + STATE(1528), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [68730] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2787), 1, + ACTIONS(3102), 1, anon_sym_RPAREN, - ACTIONS(3097), 1, + ACTIONS(3104), 1, anon_sym_COMMA, - STATE(1475), 1, - aux_sym__import_list_repeat1, - [67951] = 3, - ACTIONS(2077), 1, + 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(2526), 1, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(3108), 1, anon_sym_RBRACE, - ACTIONS(2528), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67962] = 4, + STATE(1621), 1, + sym_format_specifier, + [68769] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3100), 1, + ACTIONS(3094), 1, + anon_sym_RPAREN, + ACTIONS(3110), 1, anon_sym_COMMA, - ACTIONS(3102), 1, - anon_sym_COLON, - STATE(1488), 1, - aux_sym_with_clause_repeat1, - [67975] = 4, + STATE(1506), 1, + aux_sym_match_class_pattern_repeat2, + [68782] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, + ACTIONS(2742), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3104), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67988] = 4, + anon_sym_COLON, + [68791] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2188), 1, - anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [68001] = 4, + 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(2994), 1, - sym_identifier, - ACTIONS(3106), 1, + ACTIONS(2232), 1, anon_sym_RPAREN, - STATE(1551), 1, - sym_match_keyword_pattern, - [68014] = 2, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1523), 1, + aux_sym_argument_list_repeat1, + [68817] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2712), 3, + ACTIONS(3114), 1, anon_sym_RPAREN, + ACTIONS(3116), 1, anon_sym_COMMA, - anon_sym_COLON, - [68023] = 4, + STATE(1525), 1, + aux_sym_argument_list_repeat1, + [68830] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3108), 1, + ACTIONS(3118), 1, anon_sym_COMMA, - ACTIONS(3111), 1, + ACTIONS(3120), 1, anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68036] = 4, - ACTIONS(3), 1, + STATE(1423), 1, + aux_sym_match_mapping_pattern_repeat1, + [68843] = 3, + ACTIONS(2086), 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(3122), 1, + anon_sym_RBRACE, + ACTIONS(3124), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [68854] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3117), 1, + ACTIONS(1914), 1, anon_sym_RPAREN, - ACTIONS(3119), 1, + ACTIONS(3126), 1, anon_sym_COMMA, - STATE(1455), 1, - aux_sym_with_clause_repeat1, - [68062] = 4, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [68867] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3121), 1, + ACTIONS(3010), 1, anon_sym_COMMA, - ACTIONS(3123), 1, - anon_sym_RBRACE, - STATE(1424), 1, - aux_sym_match_mapping_pattern_repeat1, - [68075] = 2, + ACTIONS(3128), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68880] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3125), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [68084] = 4, + 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(2658), 1, - anon_sym_RPAREN, - ACTIONS(2750), 1, - anon_sym_COMMA, - STATE(1406), 1, - aux_sym__import_list_repeat1, - [68097] = 4, + 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(3100), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - ACTIONS(3127), 1, - anon_sym_COLON, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - [68110] = 4, + ACTIONS(3130), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [68919] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1904), 1, + ACTIONS(1914), 1, anon_sym_RPAREN, - ACTIONS(3129), 1, - anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [68123] = 4, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [68932] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1904), 1, + ACTIONS(1914), 1, anon_sym_RPAREN, - ACTIONS(3131), 1, + ACTIONS(3132), 1, anon_sym_COMMA, - STATE(1427), 1, - aux_sym_match_class_pattern_repeat1, - [68136] = 2, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68945] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3133), 3, + 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(1550), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [68976] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2761), 3, - sym__newline, + 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, - anon_sym_SEMI, - [68178] = 2, + ACTIONS(3141), 1, + anon_sym_RBRACK, + STATE(1511), 1, + aux_sym_type_parameters_repeat1, + [68998] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3135), 3, + 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(1018), 1, + anon_sym_RPAREN, + ACTIONS(3145), 1, + anon_sym_COMMA, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + [69020] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3137), 1, + ACTIONS(3147), 1, sym_identifier, - ACTIONS(3139), 1, + ACTIONS(3149), 1, sym_match_wildcard_pattern, - STATE(1259), 1, + STATE(1312), 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, + [69033] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3113), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - ACTIONS(3145), 1, - anon_sym_RBRACK, - STATE(1382), 1, - aux_sym_type_parameters_repeat1, - [68239] = 3, + ACTIONS(3151), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2774), 1, + ACTIONS(2857), 1, anon_sym_EQ, - ACTIONS(2770), 2, + ACTIONS(2853), 2, anon_sym_COMMA, anon_sym_COLON, - [68250] = 4, - ACTIONS(3), 1, + [69057] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(3147), 1, - anon_sym_COMMA, - ACTIONS(3149), 1, + ACTIONS(2591), 1, anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68263] = 4, + ACTIONS(2593), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [69068] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2057), 1, - anon_sym_RPAREN, - ACTIONS(3151), 1, + ACTIONS(3010), 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, + 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, + ACTIONS(3160), 1, + anon_sym_RPAREN, + ACTIONS(3162), 1, anon_sym_COMMA, - ACTIONS(2387), 1, - anon_sym_RBRACE, - STATE(1379), 1, - aux_sym_dictionary_repeat1, - [68313] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69120] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3159), 1, + ACTIONS(2881), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3162), 1, - anon_sym_RBRACE, - STATE(1506), 1, - aux_sym_match_mapping_pattern_repeat1, - [68326] = 4, + 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, + anon_sym_COLON, + [69151] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3172), 1, - anon_sym_COLON, - ACTIONS(2770), 2, + ACTIONS(3170), 1, anon_sym_RPAREN, + ACTIONS(3172), 1, anon_sym_COMMA, - [68376] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69164] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3053), 1, - anon_sym_RPAREN, ACTIONS(3174), 1, + anon_sym_RPAREN, + ACTIONS(3176), 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, - [68407] = 3, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69177] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2994), 1, - sym_identifier, - STATE(1551), 1, - sym_match_keyword_pattern, - [68417] = 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(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(3180), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69203] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3182), 2, + ACTIONS(2489), 3, sym__newline, + anon_sym_EQ, anon_sym_SEMI, - [68441] = 3, + [69212] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2357), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - STATE(1247), 1, - aux_sym_expression_list_repeat1, - [68451] = 2, + ACTIONS(3182), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3184), 2, + ACTIONS(2031), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [68459] = 3, + ACTIONS(3184), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69238] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2327), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - STATE(1278), 1, - aux_sym_expression_list_repeat1, - [68469] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3186), 2, - sym__newline, - anon_sym_SEMI, - [68477] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2407), 2, - sym__newline, - anon_sym_SEMI, - [68485] = 2, + ACTIONS(3186), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69251] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1054), 2, + 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(3194), 1, + sym_identifier, + STATE(1609), 1, + sym_match_capture_pattern, + [69293] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3196), 2, - sym__newline, - anon_sym_SEMI, - [68533] = 3, + ACTIONS(3196), 1, + anon_sym_COLON, + ACTIONS(3198), 1, + anon_sym_DASH_GT, + [69303] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3198), 1, + ACTIONS(2710), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3200), 1, - anon_sym_RBRACE, - [68543] = 2, + [69311] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2467), 2, - sym__newline, - anon_sym_SEMI, - [68551] = 3, + 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, - sym__newline, - anon_sym_SEMI, - [68577] = 2, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1451), 1, + aux_sym_match_value_pattern_repeat1, + [69347] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3208), 2, - sym__newline, - anon_sym_SEMI, - [68585] = 2, + ACTIONS(3206), 1, + anon_sym_COLON, + ACTIONS(3208), 1, + anon_sym_DASH_GT, + [69357] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3210), 2, + ACTIONS(2433), 2, sym__newline, anon_sym_SEMI, - [68593] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3212), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68601] = 2, + [69365] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3214), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [68609] = 3, + ACTIONS(3210), 1, + anon_sym_COLON, + ACTIONS(3212), 1, + anon_sym_DASH_GT, + [69375] = 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(3216), 1, + ACTIONS(3214), 1, anon_sym_COLON, - ACTIONS(3218), 1, + ACTIONS(3216), 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(3224), 1, - anon_sym_COLON, - ACTIONS(3226), 1, - anon_sym_DASH_GT, - [68667] = 2, + ACTIONS(3222), 2, + sym__newline, + anon_sym_SEMI, + [69429] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2984), 2, - anon_sym_RPAREN, + ACTIONS(3120), 1, + anon_sym_RBRACE, + ACTIONS(3224), 1, anon_sym_COMMA, - [68675] = 3, + [69439] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3228), 1, - anon_sym_COLON, - ACTIONS(3230), 1, - anon_sym_DASH_GT, - [68685] = 3, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [69447] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3232), 1, - anon_sym_COLON, - ACTIONS(3234), 1, - anon_sym_DASH_GT, - [68695] = 3, + ACTIONS(1989), 1, + anon_sym_RBRACE, + ACTIONS(3226), 1, + anon_sym_COMMA, + [69457] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3236), 1, - anon_sym_COLON, - ACTIONS(3238), 1, - anon_sym_DASH_GT, - [68705] = 3, + ACTIONS(3228), 1, + sym_integer, + ACTIONS(3230), 1, + sym_float, + [69467] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2455), 1, - anon_sym_as, - ACTIONS(2457), 1, - anon_sym_COLON, - [68715] = 2, + ACTIONS(3073), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [69475] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2660), 2, + ACTIONS(2948), 2, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_RBRACK, - [68723] = 3, + [69483] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2459), 1, - anon_sym_as, - ACTIONS(2461), 1, - anon_sym_COLON, - [68733] = 2, + ACTIONS(3232), 2, + sym__newline, + anon_sym_SEMI, + [69491] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3000), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68741] = 2, + ACTIONS(3234), 1, + anon_sym_COLON, + ACTIONS(3236), 1, + anon_sym_DASH_GT, + [69501] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3240), 2, + ACTIONS(3238), 2, sym__newline, anon_sym_SEMI, - [68749] = 2, + [69509] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2780), 2, - anon_sym_RPAREN, + ACTIONS(3240), 2, 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, - anon_sym_COLON, - [68775] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3242), 1, + ACTIONS(2441), 1, anon_sym_COLON, - ACTIONS(3244), 1, - anon_sym_DASH_GT, - [68785] = 3, + [69535] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3246), 1, - sym_identifier, - STATE(1576), 1, - sym_match_capture_pattern, - [68795] = 3, + ACTIONS(3244), 2, + sym__newline, + anon_sym_SEMI, + [69543] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - STATE(1408), 1, - aux_sym_match_value_pattern_repeat1, - [68805] = 2, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69551] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3248), 2, - sym__newline, - anon_sym_SEMI, - [68813] = 3, + ACTIONS(3246), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [69559] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3123), 1, - anon_sym_RBRACE, - ACTIONS(3250), 1, + 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(3256), 2, + ACTIONS(3254), 2, sym__newline, anon_sym_SEMI, - [68851] = 2, + [69593] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1018), 2, - anon_sym_except, - anon_sym_finally, - [68859] = 3, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1576), 1, + sym_parameters, + [69603] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3258), 1, - sym_integer, - ACTIONS(3260), 1, - sym_float, - [68869] = 2, + ACTIONS(2393), 1, + anon_sym_COMMA, + STATE(1273), 1, + aux_sym_expression_list_repeat1, + [69613] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2744), 2, - sym__newline, - anon_sym_SEMI, - [68877] = 2, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1560), 1, + sym_parameters, + [69623] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2652), 2, - anon_sym_RPAREN, + ACTIONS(3256), 2, anon_sym_COMMA, - [68885] = 3, + anon_sym_RBRACK, + [69631] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2238), 1, - anon_sym_COMMA, - STATE(1219), 1, - aux_sym_expression_list_repeat1, - [68895] = 2, + ACTIONS(3258), 1, + anon_sym_COLON, + ACTIONS(3260), 1, + 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(3264), 2, + ACTIONS(2715), 2, sym__newline, anon_sym_SEMI, - [68911] = 2, + [69657] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2469), 2, + ACTIONS(3264), 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(1054), 2, + anon_sym_except, + anon_sym_finally, + [69689] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1052), 2, + ACTIONS(1022), 2, anon_sym_except, anon_sym_finally, - [68951] = 2, + [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(3280), 2, + ACTIONS(2260), 1, anon_sym_COMMA, - anon_sym_RBRACE, - [68993] = 2, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + [69741] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1070), 2, - anon_sym_except, - anon_sym_finally, - [69001] = 3, + ACTIONS(3280), 2, + sym__newline, + anon_sym_SEMI, + [69749] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1546), 1, - sym_parameters, - [69011] = 3, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1286), 1, + aux_sym_expression_list_repeat1, + [69759] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1547), 1, - sym_parameters, - [69021] = 3, + ACTIONS(2491), 2, + sym__newline, + anon_sym_SEMI, + [69767] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1951), 1, - anon_sym_RBRACE, - ACTIONS(3282), 1, + ACTIONS(2986), 2, + anon_sym_RPAREN, anon_sym_COMMA, - [69031] = 3, + [69775] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3284), 1, + 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(1340), 1, + STATE(1382), 1, aux_sym_open_sequence_match_pattern_repeat1, - [69041] = 2, + [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, + [69831] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1546), 1, + sym_parameters, + [69841] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3162), 2, + ACTIONS(2729), 2, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_RBRACE, - [69049] = 3, + [69849] = 3, ACTIONS(3), 1, sym_comment, + ACTIONS(2906), 1, + anon_sym_COMMA, 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, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3292), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [69075] = 2, + [69877] = 3, 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, - anon_sym_COMMA, - anon_sym_RBRACK, - [69091] = 2, + sym__newline, + anon_sym_SEMI, + [69895] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3298), 1, + ACTIONS(2853), 2, + anon_sym_COMMA, anon_sym_COLON, - [69098] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3300), 1, - anon_sym_RBRACE, - [69105] = 2, + [69903] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2936), 1, - anon_sym_RBRACK, - [69112] = 2, + ACTIONS(1079), 2, + anon_sym_except, + anon_sym_finally, + [69911] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3062), 1, - anon_sym_in, - [69119] = 2, + ACTIONS(3298), 2, + sym__newline, + anon_sym_SEMI, + [69919] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3302), 1, + ACTIONS(3300), 2, + anon_sym_COMMA, anon_sym_RBRACE, - [69126] = 2, + [69927] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3304), 1, - sym_identifier, - [69133] = 2, + ACTIONS(3302), 2, + sym__newline, + anon_sym_SEMI, + [69935] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3306), 1, - sym_identifier, - [69140] = 2, + ACTIONS(3304), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69943] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3308), 1, + ACTIONS(3306), 1, anon_sym_COLON, - [69147] = 2, + ACTIONS(3308), 1, + anon_sym_DASH_GT, + [69953] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3310), 1, anon_sym_COLON, - [69154] = 2, + [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_RBRACE, - [69161] = 2, + anon_sym_RPAREN, + [69974] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3314), 1, - anon_sym_COLON, - [69168] = 2, + sym_identifier, + [69981] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3316), 1, - anon_sym_RBRACE, - [69175] = 2, + sym_identifier, + [69988] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3318), 1, - sym_identifier, - [69182] = 2, + anon_sym_RPAREN, + [69995] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3320), 1, - anon_sym_COLON, - [69189] = 2, + anon_sym_in, + [70002] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3322), 1, - anon_sym_COLON, - [69196] = 2, + anon_sym_import, + [70009] = 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, + anon_sym_RBRACE, + [70016] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3326), 1, anon_sym_COLON, - [69217] = 2, + [70023] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3328), 1, - ts_builtin_sym_end, - [69224] = 2, + anon_sym_for, + [70030] = 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, + anon_sym_RBRACE, + [70037] = 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, + [70044] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3334), 1, - sym_identifier, - [69259] = 2, + anon_sym_COLON, + [70051] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3336), 1, anon_sym_RBRACE, - [69266] = 2, + [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, - [69273] = 2, + [70072] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3340), 1, - anon_sym_RPAREN, - [69280] = 2, + anon_sym_COLON, + [70079] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3342), 1, - anon_sym_COLON, - [69287] = 2, + sym_identifier, + [70086] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3344), 1, anon_sym_COLON, - [69294] = 2, + [70093] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2548), 1, - anon_sym_COLON, - [69301] = 2, + ACTIONS(2375), 1, + anon_sym_EQ, + [70100] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3346), 1, anon_sym_COLON, - [69308] = 2, + [70107] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3348), 1, - sym_identifier, - [69315] = 2, + anon_sym_COLON, + [70114] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2982), 1, - anon_sym_RBRACE, - [69322] = 2, + ACTIONS(2541), 1, + anon_sym_COLON, + [70121] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3350), 1, - sym_identifier, - [69329] = 2, + anon_sym_COLON, + [70128] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3352), 1, - anon_sym_RBRACK, - [69336] = 2, + anon_sym_import, + [70135] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3354), 1, anon_sym_COLON, - [69343] = 2, + [70142] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3356), 1, - anon_sym_COLON, - [69350] = 2, + anon_sym_RPAREN, + [70149] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3358), 1, - anon_sym_COLON, - [69357] = 2, + sym_identifier, + [70156] = 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, + [70163] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3362), 1, anon_sym_COLON, - [69385] = 2, + [70170] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3364), 1, anon_sym_COLON, - [69392] = 2, + [70177] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3366), 1, - sym_identifier, - [69399] = 2, + ACTIONS(2572), 1, + anon_sym_COLON, + [70184] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2001), 1, + ACTIONS(3108), 1, anon_sym_RBRACE, - [69406] = 2, + [70191] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3366), 1, + anon_sym_COLON, + [70198] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3368), 1, - sym_identifier, - [69413] = 2, + anon_sym_COLON, + [70205] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3370), 1, - anon_sym_RBRACE, - [69420] = 2, + anon_sym_COLON, + [70212] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3372), 1, - sym_identifier, - [69427] = 2, + 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_RPAREN, - [69434] = 2, + anon_sym_COLON, + [70233] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3376), 1, - anon_sym_in, - [69441] = 2, + sym_identifier, + [70240] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3378), 1, - anon_sym_COLON, - [69448] = 2, + anon_sym_RPAREN, + [70247] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3380), 1, - sym_identifier, - [69455] = 2, + anon_sym_RPAREN, + [70254] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3382), 1, - anon_sym_COLON, - [69462] = 2, + anon_sym_RBRACE, + [70261] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3384), 1, - anon_sym_COLON, - [69469] = 2, + anon_sym_RBRACK, + [70268] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3386), 1, - anon_sym_for, - [69476] = 2, + anon_sym_RBRACK, + [70275] = 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, + sym_identifier, + [70282] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3085), 1, - anon_sym_in, - [69504] = 2, + ACTIONS(3128), 1, + anon_sym_RBRACK, + [70289] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3390), 1, anon_sym_COLON, - [69511] = 2, + [70296] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3392), 1, - anon_sym_RPAREN, - [69518] = 2, + sym_identifier, + [70303] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3394), 1, anon_sym_COLON, - [69525] = 2, + [70310] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3396), 1, - anon_sym_COLON, - [69532] = 2, + anon_sym_RBRACE, + [70317] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3398), 1, - anon_sym_RPAREN, - [69539] = 2, + anon_sym_RBRACE, + [70324] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3400), 1, - anon_sym_in, - [69546] = 2, + anon_sym_RBRACE, + [70331] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3402), 1, - anon_sym_RPAREN, - [69553] = 2, + anon_sym_COLON, + [70338] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3404), 1, - anon_sym_COLON, - [69560] = 2, + sym_identifier, + [70345] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3406), 1, anon_sym_RBRACK, - [69567] = 2, + [70352] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3408), 1, - anon_sym_COLON, - [69574] = 2, + anon_sym_RPAREN, + [70359] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3410), 1, - anon_sym_import, - [69581] = 2, + anon_sym_RPAREN, + [70366] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3412), 1, - sym_identifier, - [69588] = 2, + anon_sym_in, + [70373] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3414), 1, - sym_identifier, - [69595] = 2, + 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, - sym_identifier, - [69602] = 2, + anon_sym_RBRACK, + [70394] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3418), 1, - anon_sym_EQ, - [69609] = 2, + anon_sym_RBRACE, + [70401] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3420), 1, + ACTIONS(2797), 1, anon_sym_RBRACE, - [69616] = 2, + [70408] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3422), 1, - anon_sym_RBRACE, - [69623] = 2, + ACTIONS(3186), 1, + anon_sym_in, + [70415] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1104), 1, - anon_sym_def, - [69630] = 2, + 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, - anon_sym_RPAREN, - [69637] = 2, + sym_identifier, + [70436] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3426), 1, anon_sym_RPAREN, - [69644] = 2, + [70443] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3428), 1, - sym_identifier, - [69651] = 2, + anon_sym_COLON, + [70450] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3430), 1, - anon_sym_RBRACE, - [69658] = 2, + anon_sym_RPAREN, + [70457] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3432), 1, - anon_sym_RPAREN, - [69665] = 2, + anon_sym_RBRACE, + [70464] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3434), 1, - sym_identifier, - [69672] = 2, + anon_sym_RPAREN, + [70471] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3436), 1, - anon_sym_RBRACK, - [69679] = 2, + ACTIONS(2601), 1, + anon_sym_COLON, + [70478] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(956), 1, - anon_sym_STAR, - [69686] = 2, + ACTIONS(3436), 1, + anon_sym_RBRACE, + [70485] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3438), 1, - anon_sym_import, - [69693] = 2, + anon_sym_COLON, + [70492] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3440), 1, - anon_sym_RBRACE, - [69700] = 2, + anon_sym_RBRACK, + [70499] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3442), 1, - anon_sym_RPAREN, - [69707] = 2, + anon_sym_COLON, + [70506] = 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, + [70513] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3446), 1, anon_sym_COLON, - [69728] = 2, + [70520] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3448), 1, - anon_sym_in, - [69735] = 2, + ACTIONS(3046), 1, + anon_sym_RBRACK, + [70527] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3450), 1, + ACTIONS(3448), 1, anon_sym_RBRACE, - [69742] = 2, + [70534] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3200), 1, - anon_sym_RBRACE, - [69749] = 2, + ACTIONS(3450), 1, + sym_identifier, + [70541] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3452), 1, - anon_sym_RBRACK, - [69756] = 2, + anon_sym_COLON, + [70548] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3454), 1, - anon_sym_RPAREN, - [69763] = 2, + anon_sym_in, + [70555] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3456), 1, - anon_sym_COLON, - [69770] = 2, + sym_identifier, + [70562] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3458), 1, - anon_sym_RPAREN, - [69777] = 2, + anon_sym_RBRACE, + [70569] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3460), 1, anon_sym_COLON, - [69784] = 2, + [70576] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3462), 1, anon_sym_in, - [69791] = 2, + [70583] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3464), 1, - anon_sym_RPAREN, - [69798] = 2, + sym_identifier, + [70590] = 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, + anon_sym_COLON, + [70597] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3468), 1, - anon_sym_RBRACE, - [69819] = 2, + sym_identifier, + [70604] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2912), 1, - anon_sym_RBRACK, - [69826] = 2, + ACTIONS(3470), 1, + anon_sym_COLON, + [70611] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3470), 1, - anon_sym_import, - [69833] = 2, + ACTIONS(3250), 1, + anon_sym_RBRACE, + [70618] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3472), 1, - anon_sym_RBRACK, - [69840] = 2, + ts_builtin_sym_end, + [70625] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3474), 1, - anon_sym_COLON, - [69847] = 2, + anon_sym_import, + [70632] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3476), 1, - anon_sym_import, - [69854] = 2, + anon_sym_in, + [70639] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3478), 1, - anon_sym_RBRACE, - [69861] = 2, + anon_sym_RPAREN, + [70646] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3480), 1, - sym_identifier, - [69868] = 2, + anon_sym_import, + [70653] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3482), 1, - anon_sym_COLON, - [69875] = 2, + anon_sym_RBRACK, + [70660] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3484), 1, anon_sym_RBRACE, - [69882] = 2, + [70667] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3486), 1, anon_sym_COLON, - [69889] = 2, + [70674] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3488), 1, anon_sym_COLON, - [69896] = 2, + [70681] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3490), 1, - anon_sym_COLON, - [69903] = 2, + 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_RBRACE, - [69910] = 2, + 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_RPAREN, + [70863] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3528), 1, + sym_identifier, + [70870] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3530), 1, + sym_identifier, + [70877] = 2, + ACTIONS(3), 1, + sym_comment, + 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, - [70057] = 2, + [70905] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3170), 1, + ACTIONS(1122), 1, + anon_sym_def, + [70912] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3151), 1, anon_sym_in, - [70064] = 2, + [70919] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3528), 1, - anon_sym_RPAREN, - [70071] = 2, + ACTIONS(3184), 1, + anon_sym_in, + [70926] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3530), 1, - anon_sym_RBRACK, - [70078] = 2, + ACTIONS(3538), 1, + anon_sym_COLON, + [70933] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3049), 1, - anon_sym_RBRACE, + 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 044/124] 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 93d6e95a344a..e0aadd5432cd 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 045/124] 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 85d87108e353..e1843131554a 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 046/124] 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 000000000000..a95d0bc25059 --- /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 000000000000..024e0fe1ceae --- /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 047/124] 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 000000000000..ec8cc352df4f --- /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 000000000000..44c8b1ec0baa --- /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 000000000000..23c08f720ff9 --- /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 048/124] 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 000000000000..d7406d0a606c --- /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 049/124] 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 efcf64bfb9f5..8262e3e04683 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 f02ccd36cc3311a7e0366a9770a80a09e2fb3ad4 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 21 Feb 2026 22:34:28 +0000 Subject: [PATCH 050/124] (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 c5b74ccd73ae..946ee1937b45 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 30888f7b6092..69e6355e2096 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 051/124] (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 23a6bd419f5d..246f77db8434 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 052/124] 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 29e8be5a4ae4..1fd14d9d6f87 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 39b5ee30ee47..355a521e9109 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 946ee1937b45..8bee130ddc27 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 7f0a41b3040e..dafd0213b872 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 b8f064c75747..7fea38b05c20 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 69e6355e2096..9fdefa696b84 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 246f77db8434..227a178bf8e9 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 053/124] 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 1fd14d9d6f87..a96fd6ea352f 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 355a521e9109..bec5d55e95c5 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 8bee130ddc27..cfa87f2f7366 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 dafd0213b872..3cd67022a822 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 7fea38b05c20..95119d117456 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 9fdefa696b84..54b1023c7d09 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 227a178bf8e9..37636960fe85 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 054/124] 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 000000000000..281008e46971 --- /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 000000000000..4d5cc0c0d0d4 --- /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 000000000000..1e86b59d5b57 --- /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 000000000000..d4ae1f8711d4 --- /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 000000000000..e8bacba89b14 --- /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 000000000000..b33a89ba7765 --- /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 000000000000..fecf79a0de78 --- /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 000000000000..5e97a1533a9e --- /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 055/124] 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 54b1023c7d09..942bb2d1220d 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 056/124] 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 a96fd6ea352f..a567a4939562 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 bec5d55e95c5..e8a029a595c9 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 cfa87f2f7366..b26f0ad7e391 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 3cd67022a822..606cdf5c8df0 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 057/124] 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 281008e46971..30f0092a4e95 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 4d5cc0c0d0d4..6408acc7dae8 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 1e86b59d5b57..ee1b51de861f 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 d4ae1f8711d4..f8bcbb1fcb2a 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 e8bacba89b14..d849f4c0c698 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 b33a89ba7765..522801a0e46d 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 fecf79a0de78..da53d584e11d 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 058/124] "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 a567a4939562..e7aaf9b03e9b 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 ff7c71abfaec..7227f7cfd0fd 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 bb5fe5d71787..e588bdcaf26b 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 059/124] 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 e7aaf9b03e9b..1a8e807c0694 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 e8a029a595c9..da267da9f2e5 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 b26f0ad7e391..1d8abed14e20 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 606cdf5c8df0..7b329e450f55 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 060/124] 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 1a8e807c0694..b45ec1b726f6 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 da267da9f2e5..60b334ad50cb 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 1d8abed14e20..0c7db5cd40fc 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 7b329e450f55..1d32d196b07b 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 061/124] 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 942bb2d1220d..608d96f4334b 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 062/124] 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 b45ec1b726f6..eddbda10a127 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 60b334ad50cb..7f9594a73c08 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 0c7db5cd40fc..4e303d22c4c3 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 1d32d196b07b..d8c2ad2d18a9 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 063/124] 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 95119d117456..8b4653b8f4af 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 608d96f4334b..9b055d87d005 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 37636960fe85..387c4194c485 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 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 064/124] 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 4e303d22c4c3..b1fbcbcb21e1 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 065/124] 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 eddbda10a127..0c632795ddcd 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 7f9594a73c08..95ea882bac4e 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 b1fbcbcb21e1..1fd41b49e270 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 d8c2ad2d18a9..3979dfa91bd3 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 066/124] 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 0c632795ddcd..7ca619632272 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 95ea882bac4e..a4b0e26d1bc8 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 1fd41b49e270..2eb9446459f4 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 3979dfa91bd3..203213b94255 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 8b4653b8f4af..c159bfc5abe6 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 9b055d87d005..2b00d669fb93 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 387c4194c485..53392d516aef 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 067/124] 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 2bf452b5a90b..0b78b37359f4 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 c159bfc5abe6..fd39fc35714d 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 2b00d669fb93..80d7fd5688b3 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 53392d516aef..d084e415885b 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 068/124] 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 fd39fc35714d..a0702289cefb 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 80d7fd5688b3..ee4565caff3e 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 d084e415885b..db041a521514 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 069/124] 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 000000000000..8a678cc40dab --- /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 000000000000..5738be6bb047 --- /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 000000000000..ee3053b673c9 --- /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 000000000000..0e7d432a3500 --- /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 5d2d1e39667e..ccd1a84f3cf9 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 a666c64948d4..ea1cb6f571b2 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 212221509d0b..6810b5061d5c 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 996c38d127bf..8723de5cc49d 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 c2c65234cd4b..3e0fa95a327a 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 5ed9491607af..e7a2d0ef0d32 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 ee3053b673c9..5738be6bb047 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 000000000000..ee3053b673c9 --- /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 000000000000..5738be6bb047 --- /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 000000000000..48de15f84ae7 --- /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 000000000000..03a001e6000a --- /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 000000000000..5dce3facedf0 --- /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 000000000000..e8ec753f6f6e --- /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 1b64e9f4a224..27e4e6f08683 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 9302cb14b579..febbf1ae2f47 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 070/124] 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 e0aadd5432cd..c832f7e63219 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 dd2440086f15e1a45be2f11360c94bc968467d4c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 17 Apr 2026 13:24:17 +0200 Subject: [PATCH 071/124] 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 000000000000..26eac3f92728 --- /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 072/124] 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 26eac3f92728..3fd91627544b 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 dc3660974313160236464e7bbb68f2bd2a13ac15 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 17 Apr 2026 12:15:04 +0000 Subject: [PATCH 073/124] 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 5f13ba5a403c..e07e32f0840b 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 ac23e1678607d03c8409e14de5f9348171ecb287 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 17 Apr 2026 13:16:46 +0000 Subject: [PATCH 074/124] 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 000000000000..2fad7bb9a843 --- /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 000000000000..1e0627bfcca1 --- /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 000000000000..c6f7a1b4bf1c --- /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 e07e32f0840b..5f13ba5a403c 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 dca7046d8c94b1d4a3989981e404eb807c24fbe9 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 10:35:15 +0100 Subject: [PATCH 075/124] 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 b1986c1b6694..4c5f83e433a6 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 @@ 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 @@ void foo2(File parent) throws IOException { 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 @@ void foo6(File parent) throws IOException { 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 @@ void foo10(File parent) throws IOException { 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 @@ void foo11(File parent) throws IOException { 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 @@ void foo18(File dir, File parent, boolean branch) throws IOException { 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 @@ InputStream foo20() { 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 @@ void foo21(File parent) throws IOException { 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 076/124] 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 431556c90afa..9d7e47fca707 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 4c5f83e433a6..a8d0b7396aed 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 @@ 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 @@ void foo2(File parent) throws IOException { 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 @@ void foo6(File parent) throws IOException { 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 @@ File getChild() { 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 @@ void foo10(File parent) throws IOException { 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 @@ void foo11(File parent) throws IOException { 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 @@ void foo18(File dir, File parent, boolean branch) throws IOException { 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 @@ InputStream foo20() { 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 @@ void foo21(File parent) throws IOException { 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 077/124] 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 5379de2403b4..a30ff929df8a 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 f2af01542ee9..0c88cb8107f7 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 a8d0b7396aed..89fb6aaf469a 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 @@ void foo24(File parent) throws IOException { } } + 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 078/124] 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 63ffb62ef63b..a7b0c50b0827 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 a30ff929df8a..5379de2403b4 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 0c88cb8107f7..156adced6b08 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 89fb6aaf469a..42e70b2c53d3 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 @@ void foo24(File parent) throws IOException { 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 079/124] 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 000000000000..8c15a346552e --- /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 080/124] 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 a4adcd7c341f..86ff96c19172 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 a0bab539bb2176af27fd717c78920db60b82229d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Apr 2026 12:40:34 +0000 Subject: [PATCH 081/124] 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 b7acc7a39570..6e78fc546b33 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 fc18f8052b23..c815afc498c8 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 4bcb59885fa7..8a9d60a7fa94 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 8ec81ab6135e..714167434c8a 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 d50eb024972c..9d0e0ffd4f96 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 bd70b1664ac5..f5203f4e4434 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 f90aa010b895..7c906e033ad6 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 c7d8eace2961..25b04cf2dc66 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 2a03af961527..a82ec95583b6 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 71a8c1c50f07..e191e0da6884 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 3f3d4e7cc2aa..fa7e934382a8 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 0a842a96b345..efa1d011ea57 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 49c552ec02ac..2f2233460bac 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 dabbc8bd755f..b62abbbe1016 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 dd4f7c255a84..9081791d0e0d 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 c18ab2bb10ed..778284fbe9a3 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 4dc63a6f9cbe..8564a098594b 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 b7d90a618e9f..2d99bcd0c7a3 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 ef68525f982b..1ac5090098a3 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 8964f6e51ac9..978102bb82a6 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 569930438abe..7eb159e4b505 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 0eefe2f39325..7b2bd73728ae 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 2ce2978829e3..947826f7dfd7 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 b293853c73bd..adc4aedc5c37 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 e7778805c504..a18b746e4b44 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 920ffe102676..dd5fcf54034b 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 52c78c5f963f..c4e5d41dfaa3 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 274a6160372e..ed3b4a66239c 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 abe561fb37c0..3d569c7d429f 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 16d312b77aed..c1fd261e070e 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 2cf364fa3327..59ce8c067277 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 5c9c6cdc47c2..36b8181e0bf7 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 c9d4ec97a924..0734b2b722ed 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 57ed4da1080f..2bf5c49d97e5 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 7d506ee6807c..fe35cf5955b6 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 5ba6ce2b43d4..a8c85168f20f 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 1e765b5e42e4..99f8c5374dce 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 45ddcffaee77..2c44df63e7e5 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 461f97ac4dba..6778ee5a156c 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 c8cc7f97a2b0..595a2804df50 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 2bde0f317c79..6b4dc1f65e51 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 082/124] 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 3847ce9494d8..8db76e71619d 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 4d061ed5952d..a6a29d8e89ba 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 85a514d5236c..2b8c436fb14b 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 c13ab65ff327..125372e56791 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 083/124] 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 a6a29d8e89ba..8cb4d7326571 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 da17da616a07..0b07e049fac6 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 2b8c436fb14b..000000000000 --- 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 084/124] 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 8cb4d7326571..e1e74100ca84 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 085/124] 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 000000000000..acc4bc73861a --- /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 74170f153238..8692eb89fd4c 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 a505593bce90..51c367e2b136 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 eb86602bcd9f..769117fefeaf 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 a2df7ad311c0..a48c2ce04661 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 086/124] 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 98a7879a6a3e..19aa44a84477 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 05c221394867..0e5259f89a0a 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 209cb10f8116..127e4b61b633 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 db951b3ba80e..34f56adc0295 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 387feb47b7ac..f555d3a24e27 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 b7bd4981019d..a1dafe05ce6b 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 2ceca1d0387a..b64779405019 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 d50ac10c41e4..9d35bd27b38e 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 125372e56791..9d0b479518ce 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 087/124] 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 ed350932bd86..515bbbd91c67 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 b09251cf6e42..130e563a6638 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 874e657cf084..af6861349d1c 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 8db76e71619d..f2b459b63f7f 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 0b07e049fac6..a97d8f9738e7 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 fa4a7fa50f8f..d36fb68b9155 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 87710acd262f..ae875e97c6db 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 e7d3590e0fde..e1d804e6548f 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 3af93ee29458..4f37508f9a2c 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 00a0ca06ae34..5b3bf5f2dae0 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 d4842ba89cc4..0a8a4680191b 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 38d1b2506186..f6dd4911256c 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 c55109528049..6da6ec8b11e6 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 b00459c64b0e..d191f62aa920 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 bcb134a4e737..340663c6701f 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 59816a18b3fb..12baac99c78d 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 bef3fabd296d..39f0bfddf6aa 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 0b59ea928248..0b87b12041a0 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 f2a13923478c..1f7e24988ceb 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 411ca47b5e67..cd7a1419028b 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 8ff3aad95fcb..2e4af6cfe9b9 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 ccd51760504e..0567ea5828fa 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 19037a80e6c8..abac840ab102 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 abb84e3741c3..e4216f899426 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 4c189ca0274c..bc3d6d422a6c 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 088/124] 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 9d0b479518ce..0e61884b4373 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 089/124] 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 f5f541d73d53..d115e08c8634 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 fdea5323d5cb..f6d87eb9ff4f 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 090/124] 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 2906fde4e1de..e2ec595cd6d4 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 091/124] 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 e2ec595cd6d4..2aa18c0d2a80 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 092/124] 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 5889183f5257..3c7cbcba04a2 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 @@ public static async void M3(System.Net.WebSockets.WebSocket webSocket) } } } + +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 d115e08c8634..ef70ca9ad93a 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 c15b871095ff..23ae0f298cf4 100644 --- a/csharp/ql/test/resources/stubs/System.Web.cs +++ b/csharp/ql/test/resources/stubs/System.Web.cs @@ -454,3 +454,8 @@ public class SimpleTypeResolver : System.Web.Script.Serialization.JavaScriptType 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 093/124] C#: Streamline the implementation for ASP.NET Core tainted members. --- .../security/dataflow/flowsources/Remote.qll | 51 +++++++++++-------- .../aspremote/AspRemoteFlowSource.cs | 2 +- .../aspremote/aspRemoteFlowSource.expected | 1 + 3 files changed, 33 insertions(+), 21 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 2aa18c0d2a80..4fab2e8f5482 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,23 @@ class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::Pa override string getSourceType() { result = "ASP.NET web service input" } } +private class CandidateMembersToTaint extends Member { + CandidateMembersToTaint() { + 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()) + ) + } +} + /** * Taint members (transitively) on types used in * 1. Action method parameters. @@ -122,7 +139,9 @@ class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::Pa * * Note, that this also impacts uses of such types in other contexts. */ -private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember { +private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember, + CandidateMembersToTaint +{ AspNetRemoteFlowSourceMember() { exists(Type t, Type t0 | t = this.getDeclaringType() | (t = t0 or t = t0.(ArrayType).getElementType()) and @@ -133,18 +152,6 @@ private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember 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()) ) } } @@ -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 176f95e4a89d..e554f25f2064 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 a7442a80839c..d729eb939d28 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 094/124] 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 000000000000..52f3f721e9fa --- /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 095/124] 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 4fab2e8f5482..2a74c7844b12 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 096/124] C#: Re-factor CollectionType into an abstract class and introduce getElementType predicate. --- .../code/csharp/commons/Collections.qll | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll b/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll index b33c0f73d60d..c0752a720b26 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() { +/** 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()) - or - base.(ConstructedType) - .getUnboundGeneric() - .hasFullyQualifiedName(genericCollectionNamespaceName(), genericCollectionTypeName()) ) - or - this instanceof ArrayType } + + 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 097/124] 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 2a74c7844b12..aa8c8536556e 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 098/124] 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 3c7cbcba04a2..d54a359aca0c 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 @@ public static async void M3(System.Net.WebSockets.WebSocket webSocket) 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 ArrayElementDataProp { get; set; } + } + + public class ListElementData { - public string ElementSubDataProp { get; set; } + public string ListElementDataProp { get; set; } } public class MyData @@ -74,7 +80,8 @@ public class MyData 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 @@ public void MyMethod(MyData data) { 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 ef70ca9ad93a..242080e6bda2 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 099/124] 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 2eb9446459f4..f8f576b16b16 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 100/124] 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 203213b94255..608235636f16 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 101/124] 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 a0702289cefb..77ea678f5468 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 102/124] 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 db041a521514..beccf82327f2 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 103/124] 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 4f37508f9a2c..629cc8f7b1cd 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 104/124] 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 629cc8f7b1cd..8cf9c85d6a1e 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 63cd0b65dc67..7e2709468d6a 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 10ea1c8eb524..6d535025a195 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 86e13215b0c4..5a754ef3041d 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 105/124] 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 8cf9c85d6a1e..f5e7d22eb00a 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 106/124] 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 f5e7d22eb00a..63a9e782250f 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 107/124] 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 ec0152c7ecae..9af026149cc9 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 6c0034c2b9c7..423ad21ae4ac 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 5c830bb3db2f..465475475bfb 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 5e870ae6ca5d..3344fc45f74f 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 9f4be49d878a..1f4400d8f2d7 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 108/124] 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 5a754ef3041d..4748f516114c 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 109/124] 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 e1e74100ca84..947f9ae4d5c3 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 0e61884b4373..ed1bfba31772 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 110/124] 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 72353de39fcc..1137b46f32c2 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 111/124] 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 ffa48ea9654d..c33fb0ae6bb0 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 7f0e52b449a2..f8714e8602ad 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 112/124] 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 947f9ae4d5c3..09f65034f6d6 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 ed1bfba31772..1d34992de278 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 113/124] 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 5974603e33fc..967016774d86 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 114/124] 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 1d34992de278..4e8b37531296 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 115/124] 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 157bf0ffd4f3..02ada45bef60 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 cacd52cf8396..53da239d83ee 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 ed0412d1cd4d..3af6b9eab99a 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 962a58c26f94..c64f0edb8468 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 b7a45a67b567..7c9881c90d73 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 cb2d527c9641..8d6b960b2833 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 116/124] 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 ae875e97c6db..92149e026405 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 0a8a4680191b..6e933c6a8e0c 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 117/124] 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 1478d9ed9d6b..08ca08732b6b 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 1856d03c1190..74394150ca32 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 118/124] 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 4f0754ff5900..b66eaedef736 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 119/124] 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 120/124] 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 000000000000..c681b17d9878 --- /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 8f5ee4913cc8..223a083bc767 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 000000000000..80b3553e70bf --- /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 000000000000..dbc196749716 --- /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 000000000000..8aa3f169bf2b --- /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 000000000000..cfb3879422ae --- /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 121/124] 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 55818b02858d..2c3cb3b2eab3 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 122/124] 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 bb6232c1fcdd..5eccefd0dfa0 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 c681b17d9878..ae61f60e0d06 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 static void test( 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 000000000000..cb7004932e03 --- /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 cfb3879422ae..364dc30dd634 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 000000000000..9eb9fddf5968 --- /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 123/124] 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 000000000000..018ce8d348e7 --- /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 124/124] 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 60a20a483f15..1fc91c3c8499 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 a7f940ad5717..5a3c8f168942 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