C#: Add/update tests and expected output.

This commit is contained in:
Michael Nebel
2026-03-20 13:01:46 +01:00
parent 51673312c5
commit 55516342b2
41 changed files with 605 additions and 886 deletions

View File

@@ -33,14 +33,16 @@
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:21:59:21 | 3 | a |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:24:59:24 | 4 | b |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:34:59:34 | 6 | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... + ... | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... += ... | value |
| arguments.cs:61:9:61:17 | ... += ... | arguments.cs:61:9:61:12 | access to property Prop | left |
| arguments.cs:61:9:61:17 | ... += ... | arguments.cs:61:17:61:17 | 7 | right |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... + ... | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... += ... | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | b |
| arguments.cs:63:9:63:26 | ... += ... | arguments.cs:63:9:63:20 | access to indexer | left |
| arguments.cs:63:9:63:26 | ... += ... | arguments.cs:63:25:63:26 | 12 | right |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:21:65:22 | 15 | a |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:25:65:26 | 16 | b |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:12:76:12 | 0 | o |

View File

@@ -33,12 +33,12 @@
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:21:59:21 | 3 | arguments.cs:53:18:53:18 | a |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:24:59:24 | 4 | arguments.cs:53:25:53:25 | b |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:34:59:34 | 6 | arguments.cs:53:44:53:46 | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... + ... | arguments.cs:51:21:51:23 | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... += ... | arguments.cs:51:21:51:23 | value |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | arguments.cs:53:18:53:18 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | arguments.cs:53:18:53:18 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | arguments.cs:53:25:53:25 | b |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | arguments.cs:53:25:53:25 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... + ... | arguments.cs:53:44:53:46 | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... += ... | arguments.cs:53:44:53:46 | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | arguments.cs:53:18:53:18 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | arguments.cs:53:18:53:18 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | arguments.cs:53:25:53:25 | b |

View File

@@ -36,8 +36,6 @@
| arguments.cs:62:14:62:14 | 8 | 0 |
| arguments.cs:62:17:62:17 | 9 | 0 |
| arguments.cs:63:14:63:15 | 10 | 0 |
| arguments.cs:63:14:63:15 | 10 | 0 |
| arguments.cs:63:18:63:19 | 11 | 0 |
| arguments.cs:63:18:63:19 | 11 | 0 |
| arguments.cs:64:22:64:23 | 13 | 0 |
| arguments.cs:64:26:64:27 | 14 | 0 |

View File

@@ -28,7 +28,7 @@
| arguments.cs:51:21:51:23 | value | arguments.cs:57:16:57:16 | 0 |
| arguments.cs:51:21:51:23 | value | arguments.cs:58:16:58:25 | access to indexer |
| arguments.cs:51:21:51:23 | value | arguments.cs:59:31:59:31 | 5 |
| arguments.cs:51:21:51:23 | value | arguments.cs:61:9:61:17 | ... + ... |
| arguments.cs:51:21:51:23 | value | arguments.cs:61:9:61:17 | ... += ... |
| arguments.cs:53:18:53:18 | a | arguments.cs:58:21:58:21 | 1 |
| arguments.cs:53:18:53:18 | a | arguments.cs:59:21:59:21 | 3 |
| arguments.cs:53:18:53:18 | a | arguments.cs:62:14:62:14 | 8 |
@@ -44,7 +44,7 @@
| arguments.cs:53:25:53:25 | b | arguments.cs:63:18:63:19 | 11 |
| arguments.cs:53:25:53:25 | b | arguments.cs:65:25:65:26 | 16 |
| arguments.cs:53:44:53:46 | value | arguments.cs:59:34:59:34 | 6 |
| arguments.cs:53:44:53:46 | value | arguments.cs:63:9:63:26 | ... + ... |
| arguments.cs:53:44:53:46 | value | arguments.cs:63:9:63:26 | ... += ... |
| arguments.cs:74:20:74:20 | o | arguments.cs:76:12:76:12 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:77:12:77:12 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:78:12:78:12 | 0 |

View File

@@ -1,3 +0,0 @@
| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:9:6:14 | ... = ... | 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:14:6:14 | 1 |
| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:9:9:14 | ... = ... | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:9:9:14 | dynamic call to operator - | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:14:9:14 | 2 |
| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:9:12:17 | ... = ... | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:9:12:17 | call to operator + | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:14:12:17 | this access |

View File

@@ -1,22 +0,0 @@
import csharp
predicate getExpandedOperatorArgs(Expr e, Expr left, Expr right) {
e =
any(BinaryArithmeticOperation bo |
bo.getLeftOperand() = left and
bo.getRightOperand() = right
)
or
e =
any(OperatorCall oc |
oc.getArgument(0) = left and
oc.getArgument(1) = right
)
}
from AssignOperation ao, AssignExpr ae, Expr op, Expr left, Expr right
where
ae = ao.getExpandedAssignment() and
op = ae.getRValue() and
getExpandedOperatorArgs(op, left, right)
select ao, ae, ae.getLValue(), op, left, right

View File

@@ -7,11 +7,11 @@
| 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 | 34 |
| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 43 |
| 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 | 58 |
| 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 |
@@ -164,7 +164,7 @@
| 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 | 34 |
| 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 |
@@ -250,7 +250,6 @@
| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item | 6 |
| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item | 4 |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | 4 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | 2 |
| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | 3 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | 2 |
| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | 3 |
@@ -262,14 +261,11 @@
| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | 1 |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | 2 |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | 3 |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 1 |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | 1 |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 2 |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... = ... | 4 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 1 |
| ConditionalAccess.cs: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:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 2 |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... = ... | 4 |
| ConditionalAccess.cs: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 |
@@ -331,12 +327,12 @@
| 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 | ... = ... | 5 |
| 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 | ... = ... | 5 |
| 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 |
@@ -533,7 +529,7 @@
| 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 | ... = ... | 16 |
| 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 |
@@ -1130,7 +1126,7 @@
| cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | 5 |
| cflow.cs:208:10:208:11 | enter Do | cflow.cs:210:9:221:36 | do ... while (...); | 3 |
| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | 2 |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 15 |
| 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 |
@@ -1138,7 +1134,7 @@
| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:27:226:64 | call to method Repeat<String> | 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 | ... > ... | 16 |
| 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 |

View File

@@ -100,14 +100,8 @@ conditionBlock
| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | false |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | false |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | false |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | false |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | false |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | false |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | false |
| 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 |

View File

@@ -129,77 +129,54 @@ dominance
| 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:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access |
| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field |
| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; |
| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:45:9:45:31 | ...; |
| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field |
| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... + ... |
| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... |
| 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:9:45:30 | ... = ... |
| 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:45:9:45:17 | access to property Prop |
| AccessorCalls.cs:45:9:45:30 | ... = ... | AccessorCalls.cs:46:9:46:27 | ...; |
| 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: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 | access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... |
| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:14:46:14 | 0 |
| 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:9:46:26 | ... = ... |
| 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:46:9:46:15 | access to indexer |
| AccessorCalls.cs:46:9:46:26 | ... = ... | AccessorCalls.cs:42:10:42:11 | exit M5 (normal) |
| 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:14:46:14 | 0 | 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: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 | access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... |
| 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: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:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access |
| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field |
| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; |
| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:52:9:52:35 | ...; |
| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x |
| 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:36 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... |
| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:14 | 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 | 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:19 | access to property Prop |
| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... = ... |
| 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:52:9:52:19 | access to property Prop |
| AccessorCalls.cs:52:9:52:34 | ... = ... | AccessorCalls.cs:53:9:53:31 | ...; |
| 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: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:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:14 | access to field x |
| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... |
| 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:14 | access to field x | AccessorCalls.cs:53:16:53:16 | 0 |
| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... = ... |
| 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:53:9:53:17 | access to indexer |
| AccessorCalls.cs:53:9:53:30 | ... = ... | AccessorCalls.cs:49:10:49:11 | exit M6 (normal) |
| 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:16:53:16 | 0 | AccessorCalls.cs:53:9:53:12 | this access |
| 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:30 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... |
| 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 |
@@ -271,25 +248,18 @@ dominance
| 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:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:9 | access to local variable d |
| 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:9:71:25 | ... = ... |
| 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:25 | dynamic call to operator + | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent |
| 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:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:25 | dynamic call to operator + |
| 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: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:9:72:20 | ... = ... |
| 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:20 | dynamic call to operator + | AccessorCalls.cs:72:9:72:12 | dynamic access to element |
| 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:11:72:11 | 0 | 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:19:72:19 | 1 |
| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | dynamic call to operator + |
| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... |
| 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) |
@@ -732,27 +702,24 @@ dominance
| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:6:9:6:15 | ...; |
| 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:6:9:6:14 | ... = ... |
| Assignments.cs:6:9:6:14 | ... = ... | Assignments.cs:8:9:8:22 | ... ...; |
| 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:14:6:14 | 1 | Assignments.cs:6:9:6:14 | ... + ... |
| 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: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: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:14 | dynamic call to operator - | Assignments.cs:9:9:9:14 | ... = ... |
| 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:14:9:14 | 2 | Assignments.cs:9:9:9:14 | dynamic call to operator - |
| 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: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:17 | call to operator + | Assignments.cs:12:9:12:17 | ... = ... |
| 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:14:12:17 | this access | Assignments.cs:12:9:12:17 | call to operator + |
| 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) |
@@ -1058,22 +1025,16 @@ dominance
| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... -= ... |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... += ... |
| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 |
| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith |
| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " |
@@ -1295,9 +1256,8 @@ dominance
| 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:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" |
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... = ... |
| Conditions.cs:106:13:106:20 | ...; | 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: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: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 |
@@ -1309,9 +1269,8 @@ dominance
| 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:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" |
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... |
| Conditions.cs:109:17:109:24 | ...; | 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: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: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 | {...} |
@@ -1939,11 +1898,10 @@ dominance
| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" |
| 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:272:13:272:18 | ... = ... |
| 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: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:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... |
| 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 <object initializer> | 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 |
@@ -3819,14 +3777,11 @@ dominance
| cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); |
| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field |
| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... |
| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:213:13:216:13 | if (...) ... |
| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... |
| 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:17:213:21 | this access | cflow.cs:213:17:213:21 | access to field Field |
@@ -3856,14 +3811,11 @@ dominance
| cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 |
| cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat<String> |
| cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field |
| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... |
| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:229:13:232:13 | if (...) ... |
| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... |
| 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:17:229:21 | this access | cflow.cs:229:17:229:21 | access to field Field |
@@ -4138,75 +4090,52 @@ postDominance
| 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: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:12 | this access |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:33 | ...; |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... + ... |
| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:23:44:32 | access to field Field |
| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:18 | access to field Field |
| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:23:44:32 | access to field Field |
| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:43:5:47:5 | {...} |
| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field |
| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access |
| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:31 | ...; |
| AccessorCalls.cs:45:9:45:17 | 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:30 | ... + ... |
| AccessorCalls.cs:45:9:45:30 | ... + ... | AccessorCalls.cs:45:22:45:30 | access to property Prop |
| AccessorCalls.cs:45:9:45:30 | ... = ... | AccessorCalls.cs:45:9:45:17 | access to property Prop |
| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:44:9:44:32 | ... = ... |
| 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: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:14:46:14 | 0 |
| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:9:46:26 | ... + ... |
| 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:26 | ... = ... | AccessorCalls.cs:46:9:46:15 | access to indexer |
| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:45:9:45:30 | ... = ... |
| AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:9:46:12 | this access |
| 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: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: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: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:14 | access to field x |
| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:37 | ...; |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:14 | access to field x |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... + ... |
| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:25:51:36 | access to field Field |
| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:20 | access to field Field |
| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:25:51:36 | access to field Field |
| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:50:5:54:5 | {...} |
| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:9:51:20 | access to field Field |
| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:28 | this access |
| 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:14 | access to field x |
| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:35 | ...; |
| AccessorCalls.cs:52:9:52:14 | 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: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:19 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... + ... |
| AccessorCalls.cs:52:9:52:34 | ... + ... | AccessorCalls.cs:52:24:52:34 | access to property Prop |
| AccessorCalls.cs:52:9:52:34 | ... = ... | AccessorCalls.cs:52:9:52:19 | access to property Prop |
| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:51:9:51:36 | ... = ... |
| 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: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:53:9:53:12 | this access | AccessorCalls.cs:53:16:53:16 | 0 |
| AccessorCalls.cs:53:9:53:14 | 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:12 | this access |
| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... + ... |
| 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:30 | ... = ... | AccessorCalls.cs:53:9:53:17 | 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: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:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:25 | this access |
@@ -4282,29 +4211,22 @@ postDominance
| 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:9 | access to local variable d |
| AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:26 | ...; |
| 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:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:25 | dynamic call to operator + |
| AccessorCalls.cs:71:9:71:25 | ... = ... | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent |
| AccessorCalls.cs:71:9:71:25 | dynamic call to operator + | AccessorCalls.cs:71:25:71:25 | access to parameter e |
| 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: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:9:72:20 | dynamic call to operator + |
| 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:9:72:12 | dynamic access to element |
| AccessorCalls.cs:72:9:72:20 | dynamic call to operator + | 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:11:72:11 | 0 | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| 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: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: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: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 |
@@ -4730,31 +4652,28 @@ postDominance
| 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:6:9:6:14 | ... + ... | Assignments.cs:6:14:6:14 | 1 |
| Assignments.cs:6:9:6:14 | ... = ... | Assignments.cs:6:9:6:14 | ... + ... |
| 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: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: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: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:9:9:9:14 | ... = ... | Assignments.cs:9:9:9:14 | dynamic call to operator - |
| Assignments.cs:9:9:9:14 | dynamic call to operator - | Assignments.cs:9:14:9:14 | 2 |
| 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: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: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:12:9:12:17 | ... = ... | Assignments.cs:12:9:12:17 | call to operator + |
| Assignments.cs:12:9:12:17 | call to operator + | Assignments.cs:12:14:12:17 | this access |
| 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: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: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 | {...} |
@@ -5022,8 +4941,7 @@ postDominance
| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:13:43:15 | {...} |
| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | enter set_Item |
| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:12:54:29 | ... = ... |
| ConditionalAccess.cs: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 |
@@ -5052,20 +4970,15 @@ postDominance
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... |
| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:28 | access to property StringProp |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... - ... |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53: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:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... + ... |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:12:53:25 | ... -= ... |
| 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) |
@@ -5287,25 +5200,23 @@ postDominance
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:104:13:104:28 | String x = ... |
| 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:19 | ... + ... | Conditions.cs:106:18:106:19 | "" |
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:106:13:106:19 | ... + ... |
| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:18:106:19 | "" |
| 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: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: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:109:17:109:23 | ... + ... | Conditions.cs:109:22:109:23 | "" |
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:109:17:109:23 | ... + ... |
| 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:22:109:23 | "" | Conditions.cs:109:17:109:17 | access to local variable x |
| 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: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 |
@@ -5890,7 +5801,7 @@ postDominance
| 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:263:10:263:12 | exit M13 (normal) | Finally.cs:272:13:272:18 | ... += ... |
| Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | enter M13 |
| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:264:5:274:5 | {...} |
| Finally.cs:266:9:268:9 | {...} | Finally.cs:265:9:273:9 | try {...} ... |
@@ -5902,8 +5813,7 @@ postDominance
| 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:272:13:272:18 | ... + ... | Finally.cs:272:18:272:18 | 3 |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:18 | ... + ... |
| Finally.cs:272:13:272:18 | ... += ... | Finally.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: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 <object initializer> |
@@ -7720,14 +7630,11 @@ postDominance
| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:209:5:222:5 | {...} |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | do ... while (...); |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... + ... |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:25 | ...; |
| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:22:212:24 | "a" |
| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:17 | access to field Field |
| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:22:212:24 | "a" |
| 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:213:13:216:13 | if (...) ... | cflow.cs:212:13:212:24 | ... += ... |
| 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 |
@@ -7756,14 +7663,11 @@ postDominance
| cflow.cs:226:62:226:63 | 10 | cflow.cs:226:57:226:59 | "a" |
| cflow.cs:227:9:237:9 | {...} | cflow.cs:226:22:226:22 | String x |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... + ... |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:23 | ...; |
| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:22:228:22 | access to local variable x |
| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:17 | 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: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:229:13:232:13 | if (...) ... | cflow.cs:228:13:228:22 | ... += ... |
| 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 |
@@ -9077,7 +8981,6 @@ blockDominance
| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item |
| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:9:49:33 | ...; |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:26:49:32 | "Hello" |
@@ -9089,17 +8992,12 @@ blockDominance
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; |
@@ -9110,16 +9008,12 @@ blockDominance
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop |
@@ -9128,71 +9022,47 @@ blockDominance
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 |
| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop |
| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs: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:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith |
| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions |
@@ -13005,27 +12875,6 @@ postBlockDominance
| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item |
| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:48:24:48:25 | 42 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:9:49:33 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:26:49:32 | "Hello" |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:9:50:24 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:13:50:13 | 0 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:16 | access to property Prop |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:32 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 |
@@ -13058,7 +12907,6 @@ postBlockDominance
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 |
@@ -13073,29 +12921,37 @@ postBlockDominance
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs: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:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs: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 |

View File

@@ -140,32 +140,22 @@ nodeEnclosing
| AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | 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:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:44:9:44:33 | ...; | 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 | 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:12 | this access | 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: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 | ... = ... | 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:31 | ...; | 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 | 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:12 | this access | 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: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 | ... = ... | 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:27 | ...; | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:46:14:46:14 | 0 | 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 | access to indexer | AccessorCalls.cs:42:10:42:11 | M5 |
| AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:42:10:42:11 | M5 |
@@ -174,40 +164,27 @@ nodeEnclosing
| AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | 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:12 | this access | 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:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:51:9:51:37 | ...; | 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 | access to field x | 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:12 | this access | 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:14 | access to field x | 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: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 | ... = ... | 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:35 | ...; | 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 | access to field x | 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:12 | this access | 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:14 | access to field x | 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: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 | ... = ... | 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:31 | ...; | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:53:16:53:16 | 0 | 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 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 |
| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:49:10:49:11 | M6 |
@@ -286,22 +263,15 @@ nodeEnclosing
| 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:71:9:71:9 | access to local variable d | 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 | 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 | dynamic call to operator + | 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:26 | ...; | 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:9 | access to local variable d | 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: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 | dynamic call to operator + | 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:21 | ...; | AccessorCalls.cs:66:10:66:11 | M9 |
| AccessorCalls.cs:72:11:72:11 | 0 | 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 | 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 |
@@ -803,8 +773,7 @@ nodeEnclosing
| 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 | ... = ... | 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:15 | ...; | 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 |
@@ -812,16 +781,14 @@ nodeEnclosing
| 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: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 | dynamic call to operator - | 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:15 | ...; | 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:13:11:33 | Assignments a = ... | 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 | call to operator + | 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:18 | ...; | 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 | access to event Event | Assignments.cs:3:10:3:10 | M |
@@ -1165,20 +1132,14 @@ nodeEnclosing
| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith |
| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith |
@@ -1412,8 +1373,7 @@ nodeEnclosing
| Conditions.cs:105:9:106:20 | if (...) ... | 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 | ... = ... | 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:20 | ...; | 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 | if (...) ... | Conditions.cs:102:12:102:13 | M8 |
@@ -1426,8 +1386,7 @@ nodeEnclosing
| Conditions.cs:108:17:108:18 | [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 | ... = ... | 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:24 | ...; | 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 | return ...; | Conditions.cs:102:12:102:13 | M8 |
@@ -2131,8 +2090,7 @@ nodeEnclosing
| Finally.cs:271:13:271:35 | ...; | 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 | ... = ... | 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:19 | ...; | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:263:10:263:12 | M13 |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Foreach |
@@ -4204,11 +4162,8 @@ nodeEnclosing
| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:208:10:208:11 | Do |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:208:10:208:11 | Do |
| cflow.cs:212:13:212:24 | ... = ... | 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:25 | ...; | 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 | if (...) ... | cflow.cs:208:10:208:11 | Do |
@@ -4243,11 +4198,8 @@ nodeEnclosing
| cflow.cs:226:62:226:63 | 10 | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:227:9:237:9 | {...} | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:224:10:224:16 | Foreach |
| cflow.cs:228:13:228:22 | ... = ... | 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:23 | ...; | 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 | if (...) ... | cflow.cs:224:10:224:16 | Foreach |
@@ -4666,7 +4618,6 @@ blockEnclosing
| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item |
| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item |
| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 |
@@ -4678,13 +4629,10 @@ blockEnclosing
| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 |
| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith |
| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions |

View File

@@ -109,77 +109,48 @@
| AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:16:39:16 | 0 |
| AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:43:5:47:5 | {...} |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:12 | this access |
| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:33 | ...; |
| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:26 | this access |
| 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:12 | this access |
| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:45:9:45:17 | 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:12 | this access |
| AccessorCalls.cs:45:9:45:30 | ... + ... | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:45:9:45:30 | ... = ... | AccessorCalls.cs:45:9:45:12 | this access |
| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:31 | ...; |
| AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:22:45:25 | this access |
| 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:12 | this access |
| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:9:46:12 | this access |
| AccessorCalls.cs:46:9:46:15 | 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:12 | this access |
| AccessorCalls.cs:46:9:46:26 | ... + ... | AccessorCalls.cs:46:9:46:12 | this access |
| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:9:46:12 | this access |
| AccessorCalls.cs:46:9:46:26 | ... = ... | AccessorCalls.cs:46:9:46:12 | this access |
| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:27 | ...; |
| AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:14:46:14 | 0 |
| AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:14:46:14 | 0 |
| AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:20:46:23 | this access |
| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:20:46:23 | this access |
| AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:46:25:46:25 | 0 |
| AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:50:5:54:5 | {...} |
| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51: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:12 | this access |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:12 | this access |
| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:37 | ...; |
| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:28 | this access |
| 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:28 | this access |
| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:14 | 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:12 | this access |
| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:34 | ... + ... | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:34 | ... = ... | AccessorCalls.cs:52:9:52:12 | this access |
| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:35 | ...; |
| AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:24:52:27 | this access |
| 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:27 | this access |
| AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:14 | 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:12 | this access |
| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:30 | ... + ... | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:30 | ... = ... | AccessorCalls.cs:53:9:53:12 | this access |
| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:31 | ...; |
| AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:16:53:16 | 0 |
| AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:16:53:16 | 0 |
| AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:22:53:25 | this access |
| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:25 | this access |
| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:22:53:25 | this access |
@@ -249,24 +220,15 @@
| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:9 | access to local variable d |
| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:22 | ...; |
| AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:9 | access to local variable d |
| AccessorCalls.cs:71:9:71:9 | access to local variable d | 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:9 | access to local variable d |
| 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:9:71:9 | access to local variable d |
| AccessorCalls.cs:71:9:71:25 | ... = ... | AccessorCalls.cs:71:9:71:9 | access to local variable d |
| AccessorCalls.cs:71:9:71:25 | dynamic call to operator + | AccessorCalls.cs:71:9:71:9 | access to local variable d |
| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:26 | ...; |
| AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:25:71:25 | access to parameter e |
| AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:9 | access to local variable d | 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:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:20 | ... = ... | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:20 | dynamic call to operator + | AccessorCalls.cs:72:9:72:9 | access to local variable d |
| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:21 | ...; |
| AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:11:72:11 | 0 |
| AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:11:72:11 | 0 |
| AccessorCalls.cs:72:17:72:17 | access to local variable d | 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:17 | access to local variable d |
| AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:72:19:72:19 | 1 |
@@ -689,9 +651,7 @@
| 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: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:14 | ... += ... | 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 | ... ...; |
@@ -700,8 +660,6 @@
| 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 |
| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:9:9:9 | access to local variable d |
| Assignments.cs:9:9:9:14 | ... = ... | Assignments.cs:9:9:9:9 | access to local variable d |
| Assignments.cs:9:9:9:14 | dynamic call to operator - | Assignments.cs:9:9:9:9 | access to local variable d |
| 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 | ... ...; |
@@ -709,8 +667,6 @@
| 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 |
| Assignments.cs:12:9:12:17 | ... = ... | Assignments.cs:12:9:12:9 | access to local variable a |
| Assignments.cs:12:9:12:17 | call to operator + | Assignments.cs:12:9:12:9 | access to local variable a |
| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:18 | ...; |
| Assignments.cs:12:14:12:17 | this access | Assignments.cs:12:14:12:17 | this access |
| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:13 | this access |
@@ -966,22 +922,14 @@
| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" |
| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 |
| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 |
@@ -1180,9 +1128,7 @@
| Conditions.cs:105:9:106:20 | 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:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x |
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:13 | access to local variable x |
| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:13 | access to local variable x |
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:106:13:106:13 | access to local variable x |
| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; |
| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:18:106:19 | "" |
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... |
@@ -1194,9 +1140,7 @@
| 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: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 |
| Conditions.cs:109:17:109:23 | ... += ... | 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 |
| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:24 | ...; |
| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:22:109:23 | "" |
| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:16:110:16 | access to local variable x |
@@ -1776,9 +1720,7 @@
| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:13:271:35 | ...; |
| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:31:271:33 | "3" |
| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:13 | access to parameter i |
| Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:13:272:13 | access to parameter i |
| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:272:13:272:13 | access to parameter i |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:13 | access to parameter i |
| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:19 | ...; |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:272:18:272:18 | 3 |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object |
@@ -3417,12 +3359,8 @@
| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:210:9:221:36 | do ... while (...); |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:211:9:221:9 | {...} |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:17 | this access |
| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:25 | ...; |
| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:22:212:24 | "a" |
| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:13:216:13 | if (...) ... |
@@ -3454,12 +3392,8 @@
| cflow.cs:226:62:226:63 | 10 | cflow.cs:226:62:226:63 | 10 |
| cflow.cs:227:9:237:9 | {...} | cflow.cs:227:9:237:9 | {...} |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:17 | this access |
| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:23 | ...; |
| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:22:228:22 | access to local variable x |
| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:13:232:13 | if (...) ... |

View File

@@ -107,78 +107,49 @@
| 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: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: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: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:32 | ... += ... | AccessorCalls.cs:44:9:44:32 | ... = ... | 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: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: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: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:30 | ... += ... | AccessorCalls.cs:45:9:45:30 | ... = ... | 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: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: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:15 | access to indexer | AccessorCalls.cs:46:14:46:14 | 0 | normal |
| AccessorCalls.cs:46:9:46:26 | ... + ... | AccessorCalls.cs:46:9:46:26 | ... + ... | normal |
| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:9:46:26 | ... = ... | 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: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: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: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: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:36 | ... += ... | AccessorCalls.cs:51:9:51:36 | ... = ... | 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: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: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: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: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:34 | ... += ... | AccessorCalls.cs:52:9:52:34 | ... = ... | 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: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: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: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:17 | access to indexer | AccessorCalls.cs:53:16:53:16 | 0 | normal |
| AccessorCalls.cs:53:9:53:30 | ... + ... | AccessorCalls.cs:53:9:53:30 | ... + ... | normal |
| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:9:53:30 | ... = ... | 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: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 |
@@ -249,23 +220,14 @@
| 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: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: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:25 | ... = ... | AccessorCalls.cs:71:9:71:25 | ... = ... | normal |
| AccessorCalls.cs:71:9:71:25 | dynamic call to operator + | AccessorCalls.cs:71:9:71:25 | dynamic call to operator + | normal |
| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:25 | ... = ... | 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: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:12 | dynamic access to element | AccessorCalls.cs:72:11:72:11 | 0 | normal |
| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:9:72:20 | ... = ... | normal |
| AccessorCalls.cs:72:9:72:20 | ... = ... | AccessorCalls.cs:72:9:72:20 | ... = ... | normal |
| AccessorCalls.cs:72:9:72:20 | dynamic call to operator + | AccessorCalls.cs:72:9:72:20 | dynamic call to operator + | 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: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 |
@@ -788,29 +750,23 @@
| 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:14 | ... += ... | Assignments.cs:6:9:6:14 | ... = ... | 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: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:14 | ... = ... | Assignments.cs:9:9:9:14 | ... = ... | normal |
| Assignments.cs:9:9:9:14 | dynamic call to operator - | Assignments.cs:9:9:9:14 | dynamic call to operator - | normal |
| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:14 | ... = ... | 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:17 | ... = ... | Assignments.cs:12:9:12:17 | ... = ... | normal |
| Assignments.cs:12:9:12:17 | call to operator + | Assignments.cs:12:9:12:17 | call to operator + | normal |
| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:17 | ... = ... | 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 |
@@ -1120,8 +1076,7 @@
| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:15:42:26 | return ...; | return |
| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | normal |
| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | normal |
| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal |
| ConditionalAccess.cs: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 |
@@ -1181,36 +1136,18 @@
| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | normal |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | normal |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:12:53:25 | ... - ... | normal |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal |
| ConditionalAccess.cs:53: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 | non-null |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | normal |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:12:54:29 | ... + ... | normal |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal |
| ConditionalAccess.cs:54: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 |
@@ -1458,34 +1395,30 @@
| 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: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:19 | ... += ... | Conditions.cs:106:13:106:19 | ... = ... | 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: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: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: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:23 | ... += ... | Conditions.cs:109:17:109:23 | ... = ... | 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: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 |
@@ -2405,10 +2338,10 @@
| 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: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 |
@@ -2416,15 +2349,13 @@
| 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: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:18 | ... += ... | Finally.cs:272:13:272:18 | ... = ... | 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: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 <object initializer> | Foreach.cs:4:7:4:13 | call to method <object initializer> | normal |
@@ -4403,13 +4334,9 @@
| 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 | access to field Field | cflow.cs:212:13:212:17 | this access | normal |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | 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:24 | ... += ... | cflow.cs:212:13:212:24 | ... = ... | 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: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 |
@@ -4449,13 +4376,9 @@
| 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 | access to field Field | cflow.cs:228:13:228:17 | this access | normal |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | 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:22 | ... += ... | cflow.cs:228:13:228:22 | ... = ... | 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: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 |

View File

@@ -128,77 +128,54 @@
| 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:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | |
| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... | |
| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | |
| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field | |
| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; | |
| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:45:9:45:31 | ...; | |
| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | |
| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | |
| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... + ... | |
| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:12 | this access | |
| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... | |
| 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:9:45:30 | ... = ... | |
| 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:45:9:45:17 | access to property Prop | |
| AccessorCalls.cs:45:9:45:30 | ... = ... | AccessorCalls.cs:46:9:46:27 | ...; | |
| 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: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 | access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... | |
| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:14:46:14 | 0 | |
| 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:9:46:26 | ... = ... | |
| 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:46:9:46:15 | access to indexer | |
| AccessorCalls.cs:46:9:46:26 | ... = ... | AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | |
| 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:14:46:14 | 0 | 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: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 | access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... | |
| 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: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:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | |
| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... | |
| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | |
| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field | |
| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; | |
| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:52:9:52:35 | ...; | |
| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | |
| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | |
| 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:36 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... | |
| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:14 | 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 | 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:19 | access to property Prop | |
| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... = ... | |
| 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:52:9:52:19 | access to property Prop | |
| AccessorCalls.cs:52:9:52:34 | ... = ... | AccessorCalls.cs:53:9:53:31 | ...; | |
| 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: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:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:14 | access to field x | |
| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... | |
| 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:14 | access to field x | AccessorCalls.cs:53:16:53:16 | 0 | |
| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... = ... | |
| 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:53:9:53:17 | access to indexer | |
| AccessorCalls.cs:53:9:53:30 | ... = ... | AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | |
| 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:16:53:16 | 0 | AccessorCalls.cs:53:9:53:12 | this access | |
| 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:30 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... | |
| 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 | |
@@ -270,25 +247,18 @@
| 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:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:9 | access to local variable d | |
| 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:9:71:25 | ... = ... | |
| 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:25 | dynamic call to operator + | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | |
| 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:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:25 | dynamic call to operator + | |
| 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: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:9:72:20 | ... = ... | |
| 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:20 | dynamic call to operator + | AccessorCalls.cs:72:9:72:12 | dynamic access to element | |
| 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:11:72:11 | 0 | 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:19:72:19 | 1 | |
| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | dynamic call to operator + | |
| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... | |
| 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) | |
@@ -819,27 +789,24 @@
| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:6:9:6:15 | ...; | |
| 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:6:9:6:14 | ... = ... | |
| Assignments.cs:6:9:6:14 | ... = ... | Assignments.cs:8:9:8:22 | ... ...; | |
| 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:14:6:14 | 1 | Assignments.cs:6:9:6:14 | ... + ... | |
| 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: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: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:14 | dynamic call to operator - | Assignments.cs:9:9:9:14 | ... = ... | |
| 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:14:9:14 | 2 | Assignments.cs:9:9:9:14 | dynamic call to operator - | |
| 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: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:17 | call to operator + | Assignments.cs:12:9:12:17 | ... = ... | |
| 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:14:12:17 | this access | Assignments.cs:12:9:12:17 | call to operator + | |
| 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) | |
@@ -1187,26 +1154,18 @@
| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | |
| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:53:9:53:26 | ...; | |
| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | non-null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | null |
| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | null |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... | |
| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | |
| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | |
| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | |
| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:54:9:54:30 | ...; | |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... | |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | null |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null |
| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:54:9:54:30 | ...; | |
| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... -= ... | |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | non-null |
| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | null |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... | |
| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | |
| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | |
| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | |
| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... | |
| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | |
| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... += ... | |
| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | |
| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | |
| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | |
@@ -1453,10 +1412,9 @@
| 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:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | |
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... = ... | |
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:107:9:109:24 | if (...) ... | |
| 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:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... + ... | |
| 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: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 | |
@@ -1469,10 +1427,9 @@
| 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:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | |
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... | |
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:110:16:110:16 | access to local variable x | |
| 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:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... + ... | |
| 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: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 | {...} | |
@@ -2205,11 +2162,10 @@
| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | |
| 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:272:13:272:18 | ... = ... | |
| 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: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:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | |
| 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 <object initializer> | 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 | |
@@ -4305,14 +4261,11 @@
| cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | |
| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | |
| cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... | |
| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | |
| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | |
| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field | |
| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... | |
| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:213:13:216:13 | if (...) ... | |
| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | |
| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... | |
| 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:17:213:21 | this access | cflow.cs:213:17:213:21 | access to field Field | |
@@ -4347,14 +4300,11 @@
| cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | |
| cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat<String> | |
| cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... | |
| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | |
| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | |
| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field | |
| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... | |
| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:229:13:232:13 | if (...) ... | |
| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | |
| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... | |
| 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:17:229:21 | this access | cflow.cs:229:17:229:21 | access to field Field | |

View File

@@ -614,7 +614,7 @@ Operators.cs:
# 12| 1: [UnaryMinusExpr] -...
# 12| 0: [IntLiteral] 4
# 13| 5: [ExprStmt] ...;
# 13| 0: [AssignUnsighedRightShiftExpr] ... >>>= ...
# 13| 0: [AssignUnsignedRightShiftExpr] ... >>>= ...
# 13| 0: [LocalVariableAccess] access to local variable z
# 13| 1: [IntLiteral] 5
# 17| [Class] MyOperatorClass

View File

@@ -1,8 +1,7 @@
binarybitwise
| Operators.cs:7:18:7:25 | ... >>> ... | Operators.cs:7:18:7:19 | access to local variable x1 | Operators.cs:7:25:7:25 | 2 | >>> | UnsignedRightShiftExpr |
| Operators.cs:10:18:10:25 | ... >>> ... | Operators.cs:10:18:10:19 | access to local variable y1 | Operators.cs:10:25:10:25 | 3 | >>> | UnsignedRightShiftExpr |
| Operators.cs:13:9:13:16 | ... >>> ... | Operators.cs:13:9:13:9 | access to local variable z | Operators.cs:13:16:13:16 | 5 | >>> | UnsignedRightShiftExpr |
assignbitwise
| Operators.cs:13:9:13:16 | ... >>>= ... | Operators.cs:13:9:13:9 | access to local variable z | Operators.cs:13:16:13:16 | 5 | >>>= | AssignUnsighedRightShiftExpr |
| Operators.cs:13:9:13:16 | ... >>>= ... | Operators.cs:13:9:13:9 | access to local variable z | Operators.cs:13:16:13:16 | 5 | >>>= | AssignUnsignedRightShiftExpr |
userdefined
| Operators.cs:19:44:19:46 | >>> | op_UnsignedRightShift | UnsignedRightShiftOperator |

View File

@@ -1,5 +1,4 @@
nullcoalescing
| NullCoalescingAssignment.cs:8:9:8:18 | ... ?? ... |
| NullableRefTypes.cs:94:17:94:25 | ... ?? ... |
assignments
| NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | NullCoalescingAssignment.cs:8:9:8:18 | ... = ... |
| NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... |

View File

@@ -2,6 +2,4 @@ import csharp
query predicate nullcoalescing(NullCoalescingExpr expr) { any() }
query predicate assignments(AssignCoalesceExpr expr, Expr expanded) {
expanded = expr.getExpandedAssignment()
}
query predicate assignments(AssignCoalesceExpr expr) { any() }

View File

@@ -4,9 +4,8 @@
| 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: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: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:18 | ... ?? ... | NullCoalescingAssignment.cs:8:9:8:18 | ... = ... | semmle.label | successor |
| 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:15:8:18 | this access | NullCoalescingAssignment.cs:8:9:8:18 | ... ?? ... | semmle.label | successor |
| NullCoalescingAssignment.cs:8:15:8:18 | this access | NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | semmle.label | successor |

View File

@@ -32,13 +32,14 @@
| LocalDataFlow.cs:59:13:59:25 | SSA def(sink1) | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:59:21:59:25 | "abc" | LocalDataFlow.cs:59:13:59:17 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 | LocalDataFlow.cs:60:9:60:22 | SSA def(sink1) |
| LocalDataFlow.cs:60:9:60:22 | ... + ... | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:22 | ... += ... | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:22 | SSA def(sink1) | LocalDataFlow.cs:61:15:61:19 | access to local variable sink1 |
| LocalDataFlow.cs:60:18:60:22 | [post] access to local variable sink0 | LocalDataFlow.cs:168:20:168:24 | access to local variable sink0 |
| LocalDataFlow.cs:60:18:60:22 | access to local variable sink0 | LocalDataFlow.cs:168:20:168:24 | access to local variable sink0 |
| LocalDataFlow.cs:61:15:61:19 | [post] access to local variable sink1 | LocalDataFlow.cs:68:21:68:25 | access to local variable sink1 |
| LocalDataFlow.cs:61:15:61:19 | access to local variable sink1 | LocalDataFlow.cs:68:21:68:25 | access to local variable sink1 |
| LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 | LocalDataFlow.cs:64:9:64:25 | SSA def(nonSink0) |
| LocalDataFlow.cs:64:9:64:25 | ... + ... | LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 |
| LocalDataFlow.cs:64:9:64:25 | ... += ... | LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 |
| LocalDataFlow.cs:64:9:64:25 | SSA def(nonSink0) | LocalDataFlow.cs:65:15:65:22 | access to local variable nonSink0 |
| LocalDataFlow.cs:65:15:65:22 | [post] access to local variable nonSink0 | LocalDataFlow.cs:72:20:72:27 | access to local variable nonSink0 |
| LocalDataFlow.cs:65:15:65:22 | access to local variable nonSink0 | LocalDataFlow.cs:72:20:72:27 | access to local variable nonSink0 |

View File

@@ -31,19 +31,20 @@
| LocalDataFlow.cs:59:13:59:17 | access to local variable sink1 | LocalDataFlow.cs:59:13:59:25 | SSA def(sink1) |
| LocalDataFlow.cs:59:13:59:25 | SSA def(sink1) | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:59:21:59:25 | "abc" | LocalDataFlow.cs:59:13:59:17 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 | LocalDataFlow.cs:60:9:60:22 | ... + ... |
| LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 | LocalDataFlow.cs:60:9:60:22 | ... += ... |
| LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 | LocalDataFlow.cs:60:9:60:22 | SSA def(sink1) |
| LocalDataFlow.cs:60:9:60:22 | ... + ... | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:22 | ... += ... | LocalDataFlow.cs:60:9:60:13 | access to local variable sink1 |
| LocalDataFlow.cs:60:9:60:22 | SSA def(sink1) | LocalDataFlow.cs:61:15:61:19 | access to local variable sink1 |
| LocalDataFlow.cs:60:18:60:22 | access to local variable sink0 | LocalDataFlow.cs:60:9:60:22 | ... + ... |
| LocalDataFlow.cs:60:18:60:22 | [post] access to local variable sink0 | LocalDataFlow.cs:168:20:168:24 | access to local variable sink0 |
| LocalDataFlow.cs:60:18:60:22 | access to local variable sink0 | LocalDataFlow.cs:60:9:60:22 | ... += ... |
| LocalDataFlow.cs:60:18:60:22 | access to local variable sink0 | LocalDataFlow.cs:168:20:168:24 | access to local variable sink0 |
| LocalDataFlow.cs:61:15:61:19 | [post] access to local variable sink1 | LocalDataFlow.cs:68:21:68:25 | access to local variable sink1 |
| LocalDataFlow.cs:61:15:61:19 | access to local variable sink1 | LocalDataFlow.cs:68:21:68:25 | access to local variable sink1 |
| LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 | LocalDataFlow.cs:64:9:64:25 | ... + ... |
| LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 | LocalDataFlow.cs:64:9:64:25 | ... += ... |
| LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 | LocalDataFlow.cs:64:9:64:25 | SSA def(nonSink0) |
| LocalDataFlow.cs:64:9:64:25 | ... + ... | LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 |
| LocalDataFlow.cs:64:9:64:25 | ... += ... | LocalDataFlow.cs:64:9:64:16 | access to local variable nonSink0 |
| LocalDataFlow.cs:64:9:64:25 | SSA def(nonSink0) | LocalDataFlow.cs:65:15:65:22 | access to local variable nonSink0 |
| LocalDataFlow.cs:64:21:64:25 | "abc" | LocalDataFlow.cs:64:9:64:25 | ... + ... |
| LocalDataFlow.cs:64:21:64:25 | "abc" | LocalDataFlow.cs:64:9:64:25 | ... += ... |
| LocalDataFlow.cs:65:15:65:22 | [post] access to local variable nonSink0 | LocalDataFlow.cs:72:20:72:27 | access to local variable nonSink0 |
| LocalDataFlow.cs:65:15:65:22 | access to local variable nonSink0 | LocalDataFlow.cs:72:20:72:27 | access to local variable nonSink0 |
| LocalDataFlow.cs:68:13:68:17 | access to local variable sink5 | LocalDataFlow.cs:68:13:68:32 | SSA def(sink5) |

View File

@@ -153,8 +153,7 @@
| ModulusAnalysis.cs:92:25:92:25 | access to local variable j | SSA phi(j) | 0 | 0 |
| ModulusAnalysis.cs:92:29:92:31 | access to parameter cap | SSA param(cap) | 0 | 0 |
| ModulusAnalysis.cs:92:34:92:34 | access to local variable j | SSA phi(j) | 0 | 0 |
| ModulusAnalysis.cs:92:34:92:39 | ... + ... | SSA phi(j) | 1 | 0 |
| ModulusAnalysis.cs:92:34:92:39 | ... = ... | SSA phi(j) | 1 | 0 |
| ModulusAnalysis.cs:92:34:92:39 | ... += ... | SSA phi(j) | 1 | 0 |
| ModulusAnalysis.cs:92:39:92:39 | 1 | 0 | 1 | 0 |
| ModulusAnalysis.cs:93:38:93:38 | access to local variable j | SSA phi(j) | 0 | 0 |
| ModulusAnalysis.cs:95:22:95:22 | 0 | 0 | 0 | 0 |
@@ -165,12 +164,9 @@
| ModulusAnalysis.cs:95:34:95:34 | access to local variable k | 0 | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:34 | access to local variable k | SSA def(k) | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:34 | access to local variable k | SSA phi(k) | 0 | 0 |
| ModulusAnalysis.cs:95:34:95:39 | ... + ... | 0 | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... + ... | SSA def(k) | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... + ... | SSA phi(k) | 3 | 0 |
| ModulusAnalysis.cs:95:34:95:39 | ... = ... | 0 | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... = ... | SSA def(k) | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... = ... | SSA phi(k) | 3 | 0 |
| ModulusAnalysis.cs:95:34:95:39 | ... += ... | 0 | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... += ... | SSA def(k) | 0 | 3 |
| ModulusAnalysis.cs:95:34:95:39 | ... += ... | SSA phi(k) | 3 | 0 |
| ModulusAnalysis.cs:95:39:95:39 | 3 | 0 | 3 | 0 |
| ModulusAnalysis.cs:96:38:96:38 | access to local variable k | 0 | 0 | 3 |
| ModulusAnalysis.cs:96:38:96:38 | access to local variable k | SSA def(k) | 0 | 3 |

View File

@@ -0,0 +1,35 @@
public class NullCoalescing
{
public void M1()
{
var i = Source<int?>(1);
int? x = null;
x = x ?? i;
Sink(x); // $ hasValueFlow=1
}
public void M2()
{
var i = Source<int?>(2);
int? x = null;
x ??= i;
Sink(x); // $ hasValueFlow=2
}
public void M3(int? x)
{
var i = Source<int?>(3);
x = x ?? i;
Sink(x); // $ hasValueFlow=3
}
public void M4(int? x)
{
var i = Source<int?>(4);
x ??= i;
Sink(x); // $ hasValueFlow=4
}
public static void Sink(object o) { }
static T Source<T>(object source) => throw null;
}

View File

@@ -0,0 +1,70 @@
models
edges
| NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | NullCoalescing.cs:8:14:8:14 | (...) ... | provenance | |
| NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | NullCoalescing.cs:8:14:8:14 | (...) ... | provenance | |
| NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | NullCoalescing.cs:16:14:16:14 | (...) ... | provenance | |
| NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | NullCoalescing.cs:16:14:16:14 | (...) ... | provenance | |
| NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | NullCoalescing.cs:23:14:23:14 | (...) ... | provenance | |
| NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | NullCoalescing.cs:23:14:23:14 | (...) ... | provenance | |
| NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | provenance | |
| NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | provenance | |
| NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | NullCoalescing.cs:30:14:30:14 | (...) ... | provenance | |
| NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | NullCoalescing.cs:30:14:30:14 | (...) ... | provenance | |
nodes
| NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:5:13:5:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | semmle.label | access to local variable x : Nullable<Int32> |
| NullCoalescing.cs:7:9:7:9 | access to local variable x : Nullable<Int32> | semmle.label | access to local variable x : Nullable<Int32> |
| NullCoalescing.cs:8:14:8:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:8:14:8:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:13:13:13:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | semmle.label | access to local variable x : Nullable<Int32> |
| NullCoalescing.cs:15:9:15:9 | access to local variable x : Nullable<Int32> | semmle.label | access to local variable x : Nullable<Int32> |
| NullCoalescing.cs:16:14:16:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:16:14:16:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:21:13:21:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | semmle.label | access to parameter x : Nullable<Int32> |
| NullCoalescing.cs:22:9:22:9 | access to parameter x : Nullable<Int32> | semmle.label | access to parameter x : Nullable<Int32> |
| NullCoalescing.cs:23:14:23:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:23:14:23:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:28:13:28:13 | access to local variable i : Nullable<Int32> | semmle.label | access to local variable i : Nullable<Int32> |
| NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | semmle.label | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | semmle.label | access to parameter x : Nullable<Int32> |
| NullCoalescing.cs:29:9:29:9 | access to parameter x : Nullable<Int32> | semmle.label | access to parameter x : Nullable<Int32> |
| NullCoalescing.cs:30:14:30:14 | (...) ... | semmle.label | (...) ... |
| NullCoalescing.cs:30:14:30:14 | (...) ... | semmle.label | (...) ... |
subpaths
testFailures
#select
| NullCoalescing.cs:8:14:8:14 | (...) ... | NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:8:14:8:14 | (...) ... | $@ | NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:8:14:8:14 | (...) ... | NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:8:14:8:14 | (...) ... | $@ | NullCoalescing.cs:5:17:5:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:16:14:16:14 | (...) ... | NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:16:14:16:14 | (...) ... | $@ | NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:16:14:16:14 | (...) ... | NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:16:14:16:14 | (...) ... | $@ | NullCoalescing.cs:13:17:13:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:23:14:23:14 | (...) ... | NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:23:14:23:14 | (...) ... | $@ | NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:23:14:23:14 | (...) ... | NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:23:14:23:14 | (...) ... | $@ | NullCoalescing.cs:21:17:21:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:30:14:30:14 | (...) ... | NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:30:14:30:14 | (...) ... | $@ | NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |
| NullCoalescing.cs:30:14:30:14 | (...) ... | NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | NullCoalescing.cs:30:14:30:14 | (...) ... | $@ | NullCoalescing.cs:28:17:28:31 | call to method Source<Nullable<Int32>> : Nullable<Int32> | call to method Source<Nullable<Int32>> : Nullable<Int32> |

View File

@@ -0,0 +1,12 @@
/**
* @kind path-problem
*/
import csharp
import utils.test.InlineFlowTest
import DefaultFlowTest
import PathGraph
from PathNode source, PathNode sink
where flowPath(source, sink)
select sink, source, sink, "$@", source, source.toString()

View File

@@ -52,8 +52,7 @@
| SignAnalysis.cs:80:13:80:17 | ... = ... | strictlyNegative |
| SignAnalysis.cs:80:17:80:17 | access to parameter i | strictlyNegative |
| SignAnalysis.cs:81:13:81:13 | access to local variable x | strictlyNegative |
| SignAnalysis.cs:81:13:81:18 | ... + ... | strictlyNegative |
| SignAnalysis.cs:81:13:81:18 | ... = ... | strictlyNegative |
| SignAnalysis.cs:81:13:81:18 | ... += ... | strictlyNegative |
| SignAnalysis.cs:81:18:81:18 | access to parameter i | strictlyNegative |
| SignAnalysis.cs:82:38:82:38 | access to local variable x | strictlyNegative |
| SignAnalysis.cs:87:21:87:21 | access to parameter i | strictlyNegative |

View File

@@ -46,7 +46,7 @@
| DefUse.cs:89:13:89:14 | x3 | DefUse.cs:89:13:89:18 | Int32 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 | access to local variable 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 | access to local variable x4 | DefUse.cs:95:13:95:14 | access to local variable x4 |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | ... = ... | DefUse.cs:105:13:105:14 | access to local variable x5 |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | ... += ... | DefUse.cs:105:13:105:14 | access to local variable x5 |
| DefUse.cs:118:45:118:45 | i | DefUse.cs:118:45:118:45 | i | DefUse.cs:118:65:118:65 | access to parameter i |
| DefUse.cs:120:17:120:21 | Field | DefUse.cs:53:9:53:17 | ... = ... | DefUse.cs:54:13:54:17 | access to field Field |
| DefUse.cs:122:16:122:21 | Field2 | DefUse.cs:63:9:63:18 | ... = ... | DefUse.cs:64:13:64:18 | access to field Field2 |

View File

@@ -76,7 +76,7 @@
| 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: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 | ... = ... |
| DefUse.cs:116:47:116:51 | SSA def(i) | DefUse.cs:116:47:116:51 | ... = ... |
| DefUse.cs:118:45:118:45 | SSA param(i) | DefUse.cs:118:45:118:45 | i |
@@ -245,7 +245,7 @@
| Test.cs:14:17:14:19 | SSA def(x) | Test.cs:14:17:14:19 | ++... |
| Test.cs:15:13:15:17 | SSA def(z) | Test.cs:15:13:15:17 | ... = ... |
| Test.cs:19:13:19:17 | SSA def(y) | Test.cs:19:13:19:17 | ... = ... |
| Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20: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 | ...; |
@@ -255,16 +255,16 @@
| 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: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: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:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... = ... |
| 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 | ... = ... |

View File

@@ -47,7 +47,7 @@
| DefUse.cs:90:13:90:14 | x4 | DefUse.cs:93:15:93:16 | SSA def(x4) | DefUse.cs:93:15:93:16 | access to local variable x4 |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:97:13:97:18 | SSA def(x5) | DefUse.cs:97:13:97:18 | Int32 x5 = ... |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:101:13:101:23 | SSA def(x5) | DefUse.cs:101:13:101:23 | ... = ... |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:104:9:104:15 | ... = ... |
| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:104:9:104:15 | ... += ... |
| DefUse.cs:114:42:114:42 | i | DefUse.cs:114:47:114:52 | SSA def(i) | DefUse.cs:114:47:114:52 | ... = ... |
| DefUse.cs:116:42:116:42 | i | DefUse.cs:116:47:116:51 | SSA def(i) | DefUse.cs:116:47:116:51 | ... = ... |
| DefUse.cs:118:45:118:45 | i | DefUse.cs:118:68:118:72 | SSA def(i) | DefUse.cs:118:68:118:72 | ... = ... |
@@ -117,17 +117,17 @@
| Properties.cs:78:9:78:15 | this.xs | Properties.cs:81:9:81:22 | SSA def(this.xs) | Properties.cs:81:9:81:22 | ... = ... |
| Properties.cs:78:9:78:15 | this.xs | Properties.cs:83:9:83:22 | SSA def(this.xs) | Properties.cs:83:9:83:22 | ... = ... |
| Test.cs:5:15:5:20 | param1 | Test.cs:27:17:27:24 | SSA def(param1) | Test.cs:27:17:27:24 | ...++ |
| Test.cs:5:15:5:20 | param1 | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... = ... |
| Test.cs:5:15:5:20 | param1 | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... += ... |
| Test.cs:7:9:7:13 | this.field | Test.cs:7:9:7:17 | SSA def(this.field) | Test.cs:7:9:7:17 | ... = ... |
| Test.cs:7:9:7:13 | this.field | Test.cs:21:13:21:22 | SSA def(this.field) | Test.cs:21:13:21:22 | ... = ... |
| Test.cs:8:13:8:13 | x | Test.cs:8:13:8:17 | SSA def(x) | Test.cs:8:13:8:17 | Int32 x = ... |
| Test.cs:8:13:8:13 | x | Test.cs:13:13:13:15 | SSA def(x) | Test.cs:13:13:13:15 | ...++ |
| Test.cs:8:13:8:13 | x | Test.cs:14:17:14:19 | SSA def(x) | Test.cs:14:17:14:19 | ++... |
| Test.cs:8:13:8:13 | x | Test.cs:36:13:36:18 | SSA def(x) | Test.cs:36:13:36:18 | ... = ... |
| Test.cs:8:13:8:13 | x | Test.cs:36:13:36:18 | SSA def(x) | Test.cs:36:13:36:18 | ... += ... |
| Test.cs:9:13:9:13 | y | Test.cs:14:13:14:19 | SSA def(y) | Test.cs:14:13:14:19 | ... = ... |
| Test.cs:9:13:9:13 | y | Test.cs:19:13:19:17 | SSA def(y) | Test.cs:19:13:19:17 | ... = ... |
| Test.cs:9:13:9:13 | y | Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20:18 | ... = ... |
| Test.cs:9:13:9:13 | y | Test.cs:31:13:31:18 | SSA def(y) | Test.cs:31:13:31:18 | ... = ... |
| Test.cs:9:13:9:13 | y | Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20:18 | ... += ... |
| Test.cs:9:13:9:13 | y | Test.cs:31:13:31:18 | SSA def(y) | Test.cs:31:13:31:18 | ... -= ... |
| Test.cs:10:13:10:13 | z | Test.cs:15:13:15:17 | SSA def(z) | Test.cs:15:13:15:17 | ... = ... |
| Test.cs:10:13:10:13 | z | Test.cs:22:13:22:17 | SSA def(z) | Test.cs:22:13:22:17 | ... = ... |
| Test.cs:34:18:34:18 | i | Test.cs:34:18:34:22 | SSA def(i) | Test.cs:34:18:34:22 | Int32 i = ... |

View File

@@ -20,12 +20,12 @@ mayBenefitFromCallContext
| ViableCallable.cs:245:9:245:15 | call to method M<Int32> |
| ViableCallable.cs:294:9:294:15 | call to method M<Int32> |
| ViableCallable.cs:297:9:297:20 | call to method M<Int32> |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> |
| ViableCallable.cs:469:9:469:30 | call to method M2<T> |
| ViableCallable.cs:475:9:475:30 | call to method M2<T> |
| ViableCallable.cs:577:18:577:22 | call to operator / |
| ViableCallable.cs:580:26:580:30 | call to operator checked / |
| ViableCallable.cs:586:9:586:15 | call to method M12 |
| ViableCallable.cs:619:9:619:13 | call to method M |
| ViableCallable.cs:683:9:683:16 | call to method M |
| ViableCallable.cs:687:9:687:16 | call to method M |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> |
| ViableCallable.cs:470:9:470:30 | call to method M2<T> |
| ViableCallable.cs:476:9:476:30 | call to method M2<T> |
| ViableCallable.cs:578:18:578:22 | call to operator / |
| ViableCallable.cs:581:26:581:30 | call to operator checked / |
| ViableCallable.cs:587:9:587:15 | call to method M12 |
| ViableCallable.cs:620:9:620:13 | call to method M |
| ViableCallable.cs:684:9:684:16 | call to method M |
| ViableCallable.cs:688:9:688:16 | call to method M |

View File

@@ -219,62 +219,62 @@
| ViableCallable.cs:308:17:308:19 | Run | ViableCallable.cs:286:24:286:28 | M`1 |
| ViableCallable.cs:308:17:308:19 | Run | ViableCallable.cs:303:26:303:30 | M`1 |
| ViableCallable.cs:361:17:361:19 | Run | ViableCallable.cs:359:10:359:10 | M |
| ViableCallable.cs:361:17:361:19 | Run | ViableCallable.cs:375:5:375:7 | C11 |
| ViableCallable.cs:389:10:389:16 | Run`1 | ViableCallable.cs:385:33:385:33 | M |
| ViableCallable.cs:395:10:395:17 | Run2`1 | ViableCallable.cs:389:10:389:16 | Run<T2> |
| ViableCallable.cs:400:10:400:13 | Run3 | ViableCallable.cs:395:10:395:17 | Run2<C13> |
| ViableCallable.cs:422:10:422:12 | Run | ViableCallable.cs:213:21:213:27 | Mock<A4> |
| ViableCallable.cs:422:10:422:12 | Run | ViableCallable.cs:410:36:410:40 | M`1 |
| ViableCallable.cs:422:10:422:12 | Run | ViableCallable.cs:416:53:416:57 | M`1 |
| ViableCallable.cs:422:10:422:12 | Run | ViableCallable.cs:418:42:418:46 | M`1 |
| ViableCallable.cs:444:22:444:26 | M2`1 | ViableCallable.cs:469:14:469:29 | (...) => ... |
| ViableCallable.cs:444:22:444:26 | M2`1 | ViableCallable.cs:475:14:475:29 | (...) => ... |
| ViableCallable.cs:449:10:449:11 | M1 | ViableCallable.cs:443:23:443:24 | M1 |
| ViableCallable.cs:449:10:449:11 | M1 | ViableCallable.cs:458:23:458:27 | M2`1 |
| ViableCallable.cs:458:23:458:27 | M2`1 | ViableCallable.cs:455:17:455:23 | (...) => ... |
| ViableCallable.cs:458:23:458:27 | M2`1 | ViableCallable.cs:463:14:463:20 | (...) => ... |
| ViableCallable.cs:458:23:458:27 | M2`1 | ViableCallable.cs:469:14:469:29 | (...) => ... |
| ViableCallable.cs:458:23:458:27 | M2`1 | ViableCallable.cs:475:14:475:29 | (...) => ... |
| ViableCallable.cs:460:10:460:14 | M3`1 | ViableCallable.cs:458:23:458:27 | M2`1 |
| ViableCallable.cs:466:10:466:14 | M4`1 | ViableCallable.cs:444:22:444:26 | M2`1 |
| ViableCallable.cs:466:10:466:14 | M4`1 | ViableCallable.cs:458:23:458:27 | M2`1 |
| ViableCallable.cs:472:10:472:14 | M5`1 | ViableCallable.cs:444:22:444:26 | M2`1 |
| ViableCallable.cs:472:10:472:14 | M5`1 | ViableCallable.cs:458:23:458:27 | M2`1 |
| ViableCallable.cs:489:10:489:12 | Run | ViableCallable.cs:482:10:482:11 | M2 |
| ViableCallable.cs:489:10:489:12 | Run | ViableCallable.cs:487:17:487:18 | M1 |
| ViableCallable.cs:506:10:506:12 | Run | ViableCallable.cs:501:32:501:32 | + |
| ViableCallable.cs:506:10:506:12 | Run | ViableCallable.cs:502:40:502:40 | checked + |
| ViableCallable.cs:506:10:506:12 | Run | ViableCallable.cs:503:28:503:35 | explicit conversion |
| ViableCallable.cs:506:10:506:12 | Run | ViableCallable.cs:504:28:504:35 | checked explicit conversion |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:528:39:528:39 | checked - |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:530:31:530:31 | * |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:531:39:531:39 | checked * |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:533:31:533:31 | / |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:534:39:534:39 | checked / |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:538:18:538:20 | M12 |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:540:18:540:20 | M13 |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:545:32:545:32 | + |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:546:40:546:40 | checked + |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:548:32:548:32 | - |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:550:32:550:32 | / |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:551:40:551:40 | checked / |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:553:17:553:19 | M11 |
| ViableCallable.cs:556:10:556:15 | Run`1 | ViableCallable.cs:554:17:554:19 | M12 |
| ViableCallable.cs:610:17:610:23 | Run1`1 | ViableCallable.cs:602:21:602:21 | M |
| ViableCallable.cs:616:17:616:23 | Run2`1 | ViableCallable.cs:602:21:602:21 | M |
| ViableCallable.cs:616:17:616:23 | Run2`1 | ViableCallable.cs:607:21:607:21 | M |
| ViableCallable.cs:657:17:657:20 | Run1 | ViableCallable.cs:635:21:635:21 | M |
| ViableCallable.cs:657:17:657:20 | Run1 | ViableCallable.cs:637:21:637:21 | M |
| ViableCallable.cs:668:17:668:20 | Run2 | ViableCallable.cs:651:21:651:21 | M |
| ViableCallable.cs:668:17:668:20 | Run2 | ViableCallable.cs:654:21:654:21 | M |
| ViableCallable.cs:679:17:679:20 | Run3 | ViableCallable.cs:635:21:635:21 | M |
| ViableCallable.cs:679:17:679:20 | Run3 | ViableCallable.cs:637:21:637:21 | M |
| ViableCallable.cs:679:17:679:20 | Run3 | ViableCallable.cs:646:21:646:21 | M |
| ViableCallable.cs:679:17:679:20 | Run3 | ViableCallable.cs:648:21:648:21 | M |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:704:24:704:31 | Partial1 |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:705:42:705:44 | get_Property |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:705:63:705:65 | set_Property |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:707:49:707:51 | get_Item |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:707:70:707:72 | set_Item |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:708:51:708:53 | add_Event |
| ViableCallable.cs:711:17:711:20 | Run1 | ViableCallable.cs:708:59:708:64 | remove_Event |
| ViableCallable.cs:361:17:361:19 | Run | ViableCallable.cs:376:5:376:7 | C11 |
| ViableCallable.cs:390:10:390:16 | Run`1 | ViableCallable.cs:386:33:386:33 | M |
| ViableCallable.cs:396:10:396:17 | Run2`1 | ViableCallable.cs:390:10:390:16 | Run<T2> |
| ViableCallable.cs:401:10:401:13 | Run3 | ViableCallable.cs:396:10:396:17 | Run2<C13> |
| ViableCallable.cs:423:10:423:12 | Run | ViableCallable.cs:213:21:213:27 | Mock<A4> |
| ViableCallable.cs:423:10:423:12 | Run | ViableCallable.cs:411:36:411:40 | M`1 |
| ViableCallable.cs:423:10:423:12 | Run | ViableCallable.cs:417:53:417:57 | M`1 |
| ViableCallable.cs:423:10:423:12 | Run | ViableCallable.cs:419:42:419:46 | M`1 |
| ViableCallable.cs:445:22:445:26 | M2`1 | ViableCallable.cs:470:14:470:29 | (...) => ... |
| ViableCallable.cs:445:22:445:26 | M2`1 | ViableCallable.cs:476:14:476:29 | (...) => ... |
| ViableCallable.cs:450:10:450:11 | M1 | ViableCallable.cs:444:23:444:24 | M1 |
| ViableCallable.cs:450:10:450:11 | M1 | ViableCallable.cs:459:23:459:27 | M2`1 |
| ViableCallable.cs:459:23:459:27 | M2`1 | ViableCallable.cs:456:17:456:23 | (...) => ... |
| ViableCallable.cs:459:23:459:27 | M2`1 | ViableCallable.cs:464:14:464:20 | (...) => ... |
| ViableCallable.cs:459:23:459:27 | M2`1 | ViableCallable.cs:470:14:470:29 | (...) => ... |
| ViableCallable.cs:459:23:459:27 | M2`1 | ViableCallable.cs:476:14:476:29 | (...) => ... |
| ViableCallable.cs:461:10:461:14 | M3`1 | ViableCallable.cs:459:23:459:27 | M2`1 |
| ViableCallable.cs:467:10:467:14 | M4`1 | ViableCallable.cs:445:22:445:26 | M2`1 |
| ViableCallable.cs:467:10:467:14 | M4`1 | ViableCallable.cs:459:23:459:27 | M2`1 |
| ViableCallable.cs:473:10:473:14 | M5`1 | ViableCallable.cs:445:22:445:26 | M2`1 |
| ViableCallable.cs:473:10:473:14 | M5`1 | ViableCallable.cs:459:23:459:27 | M2`1 |
| ViableCallable.cs:490:10:490:12 | Run | ViableCallable.cs:483:10:483:11 | M2 |
| ViableCallable.cs:490:10:490:12 | Run | ViableCallable.cs:488:17:488:18 | M1 |
| ViableCallable.cs:507:10:507:12 | Run | ViableCallable.cs:502:32:502:32 | + |
| ViableCallable.cs:507:10:507:12 | Run | ViableCallable.cs:503:40:503:40 | checked + |
| ViableCallable.cs:507:10:507:12 | Run | ViableCallable.cs:504:28:504:35 | explicit conversion |
| ViableCallable.cs:507:10:507:12 | Run | ViableCallable.cs:505:28:505:35 | checked explicit conversion |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:529:39:529:39 | checked - |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:531:31:531:31 | * |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:532:39:532:39 | checked * |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:534:31:534:31 | / |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:535:39:535:39 | checked / |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:539:18:539:20 | M12 |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:541:18:541:20 | M13 |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:546:32:546:32 | + |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:547:40:547:40 | checked + |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:549:32:549:32 | - |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:551:32:551:32 | / |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:552:40:552:40 | checked / |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:554:17:554:19 | M11 |
| ViableCallable.cs:557:10:557:15 | Run`1 | ViableCallable.cs:555:17:555:19 | M12 |
| ViableCallable.cs:611:17:611:23 | Run1`1 | ViableCallable.cs:603:21:603:21 | M |
| ViableCallable.cs:617:17:617:23 | Run2`1 | ViableCallable.cs:603:21:603:21 | M |
| ViableCallable.cs:617:17:617:23 | Run2`1 | ViableCallable.cs:608:21:608:21 | M |
| ViableCallable.cs:658:17:658:20 | Run1 | ViableCallable.cs:636:21:636:21 | M |
| ViableCallable.cs:658:17:658:20 | Run1 | ViableCallable.cs:638:21:638:21 | M |
| ViableCallable.cs:669:17:669:20 | Run2 | ViableCallable.cs:652:21:652:21 | M |
| ViableCallable.cs:669:17:669:20 | Run2 | ViableCallable.cs:655:21:655:21 | M |
| ViableCallable.cs:680:17:680:20 | Run3 | ViableCallable.cs:636:21:636:21 | M |
| ViableCallable.cs:680:17:680:20 | Run3 | ViableCallable.cs:638:21:638:21 | M |
| ViableCallable.cs:680:17:680:20 | Run3 | ViableCallable.cs:647:21:647:21 | M |
| ViableCallable.cs:680:17:680:20 | Run3 | ViableCallable.cs:649:21:649:21 | M |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:705:24:705:31 | Partial1 |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:706:42:706:44 | get_Property |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:706:63:706:65 | set_Property |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:708:49:708:51 | get_Item |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:708:70:708:72 | set_Item |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:709:51:709:53 | add_Event |
| ViableCallable.cs:712:17:712:20 | Run1 | ViableCallable.cs:709:59:709:64 | remove_Event |

View File

@@ -467,61 +467,61 @@
| ViableCallable.cs:311:9:311:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:314:9:314:20 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:317:9:317:20 | call to method M<Int32> | C6<T1,System.Byte>.M<T3>(T1, T3) |
| ViableCallable.cs:367:9:367:14 | dynamic call to method M | C11.M(dynamic) |
| ViableCallable.cs:369:9:369:18 | dynamic object creation of type C11 | C11.C11(C11) |
| ViableCallable.cs:392:9:392:13 | call to method M | C12+C13.M() |
| ViableCallable.cs:397:9:397:14 | call to method Run<T2> | C12.Run<T2>(T2) |
| ViableCallable.cs:402:9:402:23 | call to method Run2<C13> | C12.Run2<C13>(C13) |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | C15+A1.M<T1>() |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | C15+A4.M<T1>() |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | C15+A5.M<T1>() |
| ViableCallable.cs:429:9:429:19 | call to method M<Boolean> | C15+A1.M<T1>() |
| ViableCallable.cs:433:9:433:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:435:13:435:37 | call to method Mock<A4> | ViableCallable.Mock<A4>() |
| ViableCallable.cs:437:9:437:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:437:9:437:21 | call to method M<String> | C15+A5.M<T1>() |
| ViableCallable.cs:452:9:452:19 | call to method M1 | C16<System.String,System.Int32>.M1(string) |
| ViableCallable.cs:455:9:455:24 | call to method M2<Int32> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:463:9:463:21 | call to method M2<String> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:469:9:469:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:469:9:469:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:475:9:475:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:475:9:475:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:492:9:492:14 | call to method M1 | C18.M1() |
| ViableCallable.cs:495:9:495:14 | call to method M2 | I2.M2() |
| ViableCallable.cs:509:18:509:22 | call to operator + | C19.+(C19, C19) |
| ViableCallable.cs:512:26:512:30 | call to operator checked + | C19.checked +(C19, C19) |
| ViableCallable.cs:515:18:515:23 | call to operator explicit conversion | C19.explicit conversion(C19) |
| ViableCallable.cs:518:26:518:31 | call to operator checked explicit conversion | C19.checked explicit conversion(C19) |
| ViableCallable.cs:559:18:559:22 | call to operator + | C20.+(C20, C20) |
| ViableCallable.cs:562:26:562:30 | call to operator checked + | C20.checked +(C20, C20) |
| ViableCallable.cs:565:18:565:22 | call to operator - | C20.-(C20, C20) |
| ViableCallable.cs:568:26:568:30 | call to operator checked - | I3<T>.checked -(T, T) |
| ViableCallable.cs:571:18:571:22 | call to operator * | I3<T>.*(T, T) |
| ViableCallable.cs:574:26:574:30 | call to operator checked * | I3<T>.checked *(T, T) |
| ViableCallable.cs:577:18:577:22 | call to operator / | C20./(C20, C20) |
| ViableCallable.cs:577:18:577:22 | call to operator / | I3<T>./(T, T) |
| ViableCallable.cs:580:26:580:30 | call to operator checked / | C20.checked /(C20, C20) |
| ViableCallable.cs:580:26:580:30 | call to operator checked / | I3<T>.checked /(T, T) |
| ViableCallable.cs:583:9:583:15 | call to method M11 | C20.M11() |
| ViableCallable.cs:586:9:586:15 | call to method M12 | C20.M12() |
| ViableCallable.cs:586:9:586:15 | call to method M12 | I3<T>.M12() |
| ViableCallable.cs:589:9:589:15 | call to method M13 | I3<T>.M13() |
| ViableCallable.cs:613:9:613:13 | call to method M | C21+A1.M() |
| ViableCallable.cs:619:9:619:13 | call to method M | C21+A1.M() |
| ViableCallable.cs:619:9:619:13 | call to method M | C21+A2.M() |
| ViableCallable.cs:661:9:661:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(Int32[]) |
| ViableCallable.cs:665:9:665:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(List<int>) |
| ViableCallable.cs:672:9:672:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(ReadOnlySpan<int>) |
| ViableCallable.cs:676:9:676:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(IEnumerable<int>) |
| ViableCallable.cs:683:9:683:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(Int32[]) |
| ViableCallable.cs:683:9:683:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(Int32[]) |
| ViableCallable.cs:687:9:687:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(List<int>) |
| ViableCallable.cs:687:9:687:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(List<int>) |
| ViableCallable.cs:716:9:716:18 | access to property Property | C23+Partial1.set_Property(object) |
| ViableCallable.cs:719:13:719:22 | access to property Property | C23+Partial1.get_Property() |
| ViableCallable.cs:722:9:722:12 | access to indexer | C23+Partial1.set_Item(int, object) |
| ViableCallable.cs:725:13:725:16 | access to indexer | C23+Partial1.get_Item(int) |
| ViableCallable.cs:728:9:728:15 | access to event Event | C23+Partial1.add_Event(EventHandler) |
| ViableCallable.cs:731:9:731:15 | access to event Event | C23+Partial1.remove_Event(EventHandler) |
| ViableCallable.cs:734:18:734:43 | object creation of type Partial1 | C23+Partial1.Partial1(object) |
| ViableCallable.cs:368:9:368:14 | dynamic call to method M | C11.M(dynamic) |
| ViableCallable.cs:370:9:370:18 | dynamic object creation of type C11 | C11.C11(C11) |
| ViableCallable.cs:393:9:393:13 | call to method M | C12+C13.M() |
| ViableCallable.cs:398:9:398:14 | call to method Run<T2> | C12.Run<T2>(T2) |
| ViableCallable.cs:403:9:403:23 | call to method Run2<C13> | C12.Run2<C13>(C13) |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | C15+A1.M<T1>() |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | C15+A4.M<T1>() |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | C15+A5.M<T1>() |
| ViableCallable.cs:430:9:430:19 | call to method M<Boolean> | C15+A1.M<T1>() |
| ViableCallable.cs:434:9:434:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:436:13:436:37 | call to method Mock<A4> | ViableCallable.Mock<A4>() |
| ViableCallable.cs:438:9:438:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:438:9:438:21 | call to method M<String> | C15+A5.M<T1>() |
| ViableCallable.cs:453:9:453:19 | call to method M1 | C16<System.String,System.Int32>.M1(string) |
| ViableCallable.cs:456:9:456:24 | call to method M2<Int32> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:464:9:464:21 | call to method M2<String> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:470:9:470:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:470:9:470:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:476:9:476:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:476:9:476:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:493:9:493:14 | call to method M1 | C18.M1() |
| ViableCallable.cs:496:9:496:14 | call to method M2 | I2.M2() |
| ViableCallable.cs:510:18:510:22 | call to operator + | C19.+(C19, C19) |
| ViableCallable.cs:513:26:513:30 | call to operator checked + | C19.checked +(C19, C19) |
| ViableCallable.cs:516:18:516:23 | call to operator explicit conversion | C19.explicit conversion(C19) |
| ViableCallable.cs:519:26:519:31 | call to operator checked explicit conversion | C19.checked explicit conversion(C19) |
| ViableCallable.cs:560:18:560:22 | call to operator + | C20.+(C20, C20) |
| ViableCallable.cs:563:26:563:30 | call to operator checked + | C20.checked +(C20, C20) |
| ViableCallable.cs:566:18:566:22 | call to operator - | C20.-(C20, C20) |
| ViableCallable.cs:569:26:569:30 | call to operator checked - | I3<T>.checked -(T, T) |
| ViableCallable.cs:572:18:572:22 | call to operator * | I3<T>.*(T, T) |
| ViableCallable.cs:575:26:575:30 | call to operator checked * | I3<T>.checked *(T, T) |
| ViableCallable.cs:578:18:578:22 | call to operator / | C20./(C20, C20) |
| ViableCallable.cs:578:18:578:22 | call to operator / | I3<T>./(T, T) |
| ViableCallable.cs:581:26:581:30 | call to operator checked / | C20.checked /(C20, C20) |
| ViableCallable.cs:581:26:581:30 | call to operator checked / | I3<T>.checked /(T, T) |
| ViableCallable.cs:584:9:584:15 | call to method M11 | C20.M11() |
| ViableCallable.cs:587:9:587:15 | call to method M12 | C20.M12() |
| ViableCallable.cs:587:9:587:15 | call to method M12 | I3<T>.M12() |
| ViableCallable.cs:590:9:590:15 | call to method M13 | I3<T>.M13() |
| ViableCallable.cs:614:9:614:13 | call to method M | C21+A1.M() |
| ViableCallable.cs:620:9:620:13 | call to method M | C21+A1.M() |
| ViableCallable.cs:620:9:620:13 | call to method M | C21+A2.M() |
| ViableCallable.cs:662:9:662:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(Int32[]) |
| ViableCallable.cs:666:9:666:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(List<int>) |
| ViableCallable.cs:673:9:673:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(ReadOnlySpan<int>) |
| ViableCallable.cs:677:9:677:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(IEnumerable<int>) |
| ViableCallable.cs:684:9:684:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(Int32[]) |
| ViableCallable.cs:684:9:684:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(Int32[]) |
| ViableCallable.cs:688:9:688:16 | call to method M | C22+TestOverloadResolution1<System.Int32>.M(List<int>) |
| ViableCallable.cs:688:9:688:16 | call to method M | C22+TestOverloadResolution2<System.Int32>.M(List<int>) |
| ViableCallable.cs:717:9:717:18 | access to property Property | C23+Partial1.set_Property(object) |
| ViableCallable.cs:720:13:720:22 | access to property Property | C23+Partial1.get_Property() |
| ViableCallable.cs:723:9:723:12 | access to indexer | C23+Partial1.set_Item(int, object) |
| ViableCallable.cs:726:13:726:16 | access to indexer | C23+Partial1.get_Item(int) |
| ViableCallable.cs:729:9:729:15 | access to event Event | C23+Partial1.add_Event(EventHandler) |
| ViableCallable.cs:732:9:732:15 | access to event Event | C23+Partial1.remove_Event(EventHandler) |
| ViableCallable.cs:735:18:735:43 | object creation of type Partial1 | C23+Partial1.Partial1(object) |

View File

@@ -362,6 +362,7 @@ public class C11
{
dynamic d = this;
int x = 0;
// Viable callables: int.+
x += 42;
// Viable callables: C11.M()
d.M(x);

View File

@@ -271,35 +271,36 @@
| ViableCallable.cs:311:9:311:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:314:9:314:20 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:317:9:317:20 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:367:9:367:14 | dynamic call to method M | M | C11 |
| ViableCallable.cs:369:9:369:18 | dynamic object creation of type C11 | C11 | C11 |
| ViableCallable.cs:392:9:392:13 | call to method M | M | C13 |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | M`1 | A1 |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | M`1 | A4 |
| ViableCallable.cs:425:9:425:18 | call to method M<Int32> | M`1 | A5 |
| ViableCallable.cs:427:13:427:20 | object creation of type A3 | A3 | A3 |
| ViableCallable.cs:429:9:429:19 | call to method M<Boolean> | M`1 | A1 |
| ViableCallable.cs:431:13:431:20 | object creation of type A4 | A4 | A4 |
| ViableCallable.cs:433:9:433:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:437:9:437:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:437:9:437:21 | call to method M<String> | M`1 | A5 |
| ViableCallable.cs:492:9:492:14 | call to method M1 | M1 | C18 |
| ViableCallable.cs:495:9:495:14 | call to method M2 | M2 | I2 |
| ViableCallable.cs:509:18:509:22 | call to operator + | + | C19 |
| ViableCallable.cs:512:26:512:30 | call to operator checked + | checked + | C19 |
| ViableCallable.cs:515:18:515:23 | call to operator explicit conversion | explicit conversion | C19 |
| ViableCallable.cs:518:26:518:31 | call to operator checked explicit conversion | checked explicit conversion | C19 |
| ViableCallable.cs:559:18:559:22 | call to operator + | + | C20 |
| ViableCallable.cs:562:26:562:30 | call to operator checked + | checked + | C20 |
| ViableCallable.cs:565:18:565:22 | call to operator - | - | C20 |
| ViableCallable.cs:568:26:568:30 | call to operator checked - | checked - | I3`1 |
| ViableCallable.cs:571:18:571:22 | call to operator * | * | I3`1 |
| ViableCallable.cs:574:26:574:30 | call to operator checked * | checked * | I3`1 |
| ViableCallable.cs:577:18:577:22 | call to operator / | / | C20 |
| ViableCallable.cs:577:18:577:22 | call to operator / | / | I3`1 |
| ViableCallable.cs:580:26:580:30 | call to operator checked / | checked / | C20 |
| ViableCallable.cs:580:26:580:30 | call to operator checked / | checked / | I3`1 |
| ViableCallable.cs:583:9:583:15 | call to method M11 | M11 | C20 |
| ViableCallable.cs:586:9:586:15 | call to method M12 | M12 | C20 |
| ViableCallable.cs:586:9:586:15 | call to method M12 | M12 | I3`1 |
| ViableCallable.cs:589:9:589:15 | call to method M13 | M13 | I3`1 |
| ViableCallable.cs:366:9:366:15 | ... += ... | + | Int32 |
| ViableCallable.cs:368:9:368:14 | dynamic call to method M | M | C11 |
| ViableCallable.cs:370:9:370:18 | dynamic object creation of type C11 | C11 | C11 |
| ViableCallable.cs:393:9:393:13 | call to method M | M | C13 |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | M`1 | A1 |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | M`1 | A4 |
| ViableCallable.cs:426:9:426:18 | call to method M<Int32> | M`1 | A5 |
| ViableCallable.cs:428:13:428:20 | object creation of type A3 | A3 | A3 |
| ViableCallable.cs:430:9:430:19 | call to method M<Boolean> | M`1 | A1 |
| ViableCallable.cs:432:13:432:20 | object creation of type A4 | A4 | A4 |
| ViableCallable.cs:434:9:434:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:438:9:438:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:438:9:438:21 | call to method M<String> | M`1 | A5 |
| ViableCallable.cs:493:9:493:14 | call to method M1 | M1 | C18 |
| ViableCallable.cs:496:9:496:14 | call to method M2 | M2 | I2 |
| ViableCallable.cs:510:18:510:22 | call to operator + | + | C19 |
| ViableCallable.cs:513:26:513:30 | call to operator checked + | checked + | C19 |
| ViableCallable.cs:516:18:516:23 | call to operator explicit conversion | explicit conversion | C19 |
| ViableCallable.cs:519:26:519:31 | call to operator checked explicit conversion | checked explicit conversion | C19 |
| ViableCallable.cs:560:18:560:22 | call to operator + | + | C20 |
| ViableCallable.cs:563:26:563:30 | call to operator checked + | checked + | C20 |
| ViableCallable.cs:566:18:566:22 | call to operator - | - | C20 |
| ViableCallable.cs:569:26:569:30 | call to operator checked - | checked - | I3`1 |
| ViableCallable.cs:572:18:572:22 | call to operator * | * | I3`1 |
| ViableCallable.cs:575:26:575:30 | call to operator checked * | checked * | I3`1 |
| ViableCallable.cs:578:18:578:22 | call to operator / | / | C20 |
| ViableCallable.cs:578:18:578:22 | call to operator / | / | I3`1 |
| ViableCallable.cs:581:26:581:30 | call to operator checked / | checked / | C20 |
| ViableCallable.cs:581:26:581:30 | call to operator checked / | checked / | I3`1 |
| ViableCallable.cs:584:9:584:15 | call to method M11 | M11 | C20 |
| ViableCallable.cs:587:9:587:15 | call to method M12 | M12 | C20 |
| ViableCallable.cs:587:9:587:15 | call to method M12 | M12 | I3`1 |
| ViableCallable.cs:590:9:590:15 | call to method M13 | M13 | I3`1 |

View File

@@ -1,6 +1,6 @@
| dynamic.cs:35:13:35:14 | dynamic call to operator - | - | 0 | dynamic.cs:35:14:35:14 | access to local variable d |
| dynamic.cs:36:13:36:17 | dynamic call to operator + | + | 0 | dynamic.cs:36:13:36:13 | access to local variable d |
| dynamic.cs:36:13:36:17 | dynamic call to operator + | + | 1 | dynamic.cs:36:17:36:17 | access to local variable d |
| dynamic.cs:37:9:37:14 | dynamic call to operator + | + | 0 | dynamic.cs:37:9:37:9 | access to local variable d |
| dynamic.cs:37:9:37:14 | dynamic call to operator + | + | 1 | dynamic.cs:37:14:37:14 | access to local variable d |
| dynamic.cs:37:9:37:14 | ... += ... | + | 0 | dynamic.cs:37:9:37:9 | access to local variable d |
| dynamic.cs:37:9:37:14 | ... += ... | + | 1 | dynamic.cs:37:14:37:14 | access to local variable d |
| dynamic.cs:47:9:47:11 | dynamic call to operator ++ | ++ | 0 | dynamic.cs:47:9:47:9 | access to local variable d |

View File

@@ -105,12 +105,12 @@ dynamic.cs:
# 35| 15: [ExprStmt] ...;
# 35| 0: [AssignExpr] ... = ...
# 35| 0: [LocalVariableAccess] access to local variable d
# 35| 1: [DynamicOperatorCall] dynamic call to operator -
# 35| 1: [OperatorCall] dynamic call to operator -
# 35| 0: [LocalVariableAccess] access to local variable d
# 36| 16: [ExprStmt] ...;
# 36| 0: [AssignExpr] ... = ...
# 36| 0: [LocalVariableAccess] access to local variable d
# 36| 1: [DynamicOperatorCall] dynamic call to operator +
# 36| 1: [OperatorCall] dynamic call to operator +
# 36| 0: [LocalVariableAccess] access to local variable d
# 36| 1: [LocalVariableAccess] access to local variable d
# 37| 17: [ExprStmt] ...;
@@ -141,7 +141,7 @@ dynamic.cs:
# 44| 0: [PostIncrExpr] ...++
# 44| 0: [LocalVariableAccess] access to local variable i
# 47| 23: [ExprStmt] ...;
# 47| 0: [DynamicOperatorCall] dynamic call to operator ++
# 47| 0: [OperatorCall] dynamic call to operator ++
# 47| 0: [LocalVariableAccess] access to local variable d
# 50| 24: [ExprStmt] ...;
# 50| 0: [PostIncrExpr] ...++

View File

@@ -57,64 +57,64 @@ gvn
| StructuralComparison.cs:3:14:3:18 | {...} | (kind:Stmt(1)) |
| StructuralComparison.cs:5:26:5:26 | access to field x | (kind:Expr(16),true,x) |
| StructuralComparison.cs:5:26:5:26 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:5:26:5:30 | ... = ... | ((kind:Expr(16),true,x) :: (0 :: (kind:Expr(63)))) |
| StructuralComparison.cs:5:26:5:30 | ... = ... | (0 :: ((kind:Expr(16),true,x) :: (kind:Expr(63)))) |
| StructuralComparison.cs:5:30:5:30 | 0 | 0 |
| StructuralComparison.cs:6:26:6:26 | access to field y | (kind:Expr(16),true,y) |
| StructuralComparison.cs:6:26:6:26 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:6:26:6:30 | ... = ... | ((kind:Expr(16),true,y) :: (1 :: (kind:Expr(63)))) |
| StructuralComparison.cs:6:26:6:30 | ... = ... | (1 :: ((kind:Expr(16),true,y) :: (kind:Expr(63)))) |
| StructuralComparison.cs:6:30:6:30 | 1 | 1 |
| StructuralComparison.cs:8:24:8:24 | 0 | 0 |
| StructuralComparison.cs:9:29:9:29 | access to parameter a | (kind:Expr(15),false,a) |
| StructuralComparison.cs:10:38:10:39 | access to parameter v1 | (kind:Expr(15),false,v1) |
| StructuralComparison.cs:10:38:10:44 | ... + ... | ((kind:Expr(15),false,v2) :: ((kind:Expr(15),false,v1) :: (kind:Expr(44)))) |
| StructuralComparison.cs:10:43:10:44 | access to parameter v2 | (kind:Expr(15),false,v2) |
| StructuralComparison.cs:14:5:17:5 | {...} | ((((kind:Expr(14),false,z2) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,z1) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1)))) |
| StructuralComparison.cs:15:9:15:23 | ... ...; | (((kind:Expr(14),false,z1) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:14:5:17:5 | {...} | (((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1)))) |
| StructuralComparison.cs:15:9:15:23 | ... ...; | ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:15:13:15:14 | access to local variable z1 | (kind:Expr(14),false,z1) |
| StructuralComparison.cs:15:13:15:22 | Int32 z1 = ... | ((kind:Expr(14),false,z1) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:15:13:15:22 | Int32 z1 = ... | (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z1) :: (kind:Expr(83)))) |
| StructuralComparison.cs:15:18:15:18 | access to field x | (kind:Expr(16),true,x) |
| StructuralComparison.cs:15:18:15:18 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:15:18:15:22 | ... + ... | ((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) |
| StructuralComparison.cs:15:22:15:22 | access to field y | (kind:Expr(16),true,y) |
| StructuralComparison.cs:15:22:15:22 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:16:9:16:23 | ... ...; | (((kind:Expr(14),false,z2) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:16:9:16:23 | ... ...; | ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:16:13:16:14 | access to local variable z2 | (kind:Expr(14),false,z2) |
| StructuralComparison.cs:16:13:16:22 | Int32 z2 = ... | ((kind:Expr(14),false,z2) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:16:13:16:22 | Int32 z2 = ... | (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z2) :: (kind:Expr(83)))) |
| StructuralComparison.cs:16:18:16:18 | access to field x | (kind:Expr(16),true,x) |
| StructuralComparison.cs:16:18:16:18 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:16:18:16:22 | ... + ... | ((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: (kind:Expr(44)))) |
| StructuralComparison.cs:16:22:16:22 | access to field y | (kind:Expr(16),true,y) |
| StructuralComparison.cs:16:22:16:22 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:20:5:29:5 | {...} | ((((kind:Expr(16),true,x) :: ((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((kind:Expr(16),true,x) :: ((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((kind:Expr(14),false,z7) :: ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,z6) :: (((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,z5) :: (((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,z4) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,z3) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1)))))))))) |
| StructuralComparison.cs:21:9:21:23 | ... ...; | (((kind:Expr(14),false,z3) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:20:5:29:5 | {...} | ((((kind:Expr(16),true,x) :: ((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((kind:Expr(16),true,x) :: ((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Stmt(2))) :: ((((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z7) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (((((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: ((kind:Expr(14),false,z6) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (((((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z5) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (((((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z4) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (((((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1)))))))))) |
| StructuralComparison.cs:21:9:21:23 | ... ...; | ((((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:21:13:21:14 | access to local variable z3 | (kind:Expr(14),false,z3) |
| StructuralComparison.cs:21:13:21:22 | Int32 z3 = ... | ((kind:Expr(14),false,z3) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:21:13:21:22 | Int32 z3 = ... | (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z3) :: (kind:Expr(83)))) |
| StructuralComparison.cs:21:18:21:22 | call to method M1 | ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) |
| StructuralComparison.cs:21:18:21:22 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:21:21:21:21 | access to field x | (kind:Expr(16),true,x) |
| StructuralComparison.cs:21:21:21:21 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:22:9:22:23 | ... ...; | (((kind:Expr(14),false,z4) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:22:9:22:23 | ... ...; | ((((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z4) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:22:13:22:14 | access to local variable z4 | (kind:Expr(14),false,z4) |
| StructuralComparison.cs:22:13:22:22 | Int32 z4 = ... | ((kind:Expr(14),false,z4) :: (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:22:13:22:22 | Int32 z4 = ... | (((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z4) :: (kind:Expr(83)))) |
| StructuralComparison.cs:22:18:22:22 | call to method M1 | ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) |
| StructuralComparison.cs:22:18:22:22 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:22:21:22:21 | access to field x | (kind:Expr(16),true,x) |
| StructuralComparison.cs:22:21:22:21 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:23:9:23:23 | ... ...; | (((kind:Expr(14),false,z5) :: (((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:23:9:23:23 | ... ...; | ((((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z5) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:23:13:23:14 | access to local variable z5 | (kind:Expr(14),false,z5) |
| StructuralComparison.cs:23:13:23:22 | Int32 z5 = ... | ((kind:Expr(14),false,z5) :: (((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:23:13:23:22 | Int32 z5 = ... | (((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) :: ((kind:Expr(14),false,z5) :: (kind:Expr(83)))) |
| StructuralComparison.cs:23:18:23:22 | call to method M1 | ((kind:Expr(16),true,y) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M1))) |
| StructuralComparison.cs:23:18:23:22 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:23:21:23:21 | access to field y | (kind:Expr(16),true,y) |
| StructuralComparison.cs:23:21:23:21 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:24:9:24:22 | ... ...; | (((kind:Expr(14),false,z6) :: (((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:24:9:24:22 | ... ...; | ((((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: ((kind:Expr(14),false,z6) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:24:13:24:14 | access to local variable z6 | (kind:Expr(14),false,z6) |
| StructuralComparison.cs:24:13:24:21 | Int32 z6 = ... | ((kind:Expr(14),false,z6) :: (((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: (kind:Expr(83)))) |
| StructuralComparison.cs:24:13:24:21 | Int32 z6 = ... | (((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) :: ((kind:Expr(14),false,z6) :: (kind:Expr(83)))) |
| StructuralComparison.cs:24:18:24:21 | call to method M0 | ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M0)) |
| StructuralComparison.cs:24:18:24:21 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:25:9:25:37 | ... ...; | (((kind:Expr(14),false,z7) :: ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:25:9:25:37 | ... ...; | (((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z7) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:25:13:25:14 | access to local variable z7 | (kind:Expr(14),false,z7) |
| StructuralComparison.cs:25:13:25:36 | Int32 z7 = ... | ((kind:Expr(14),false,z7) :: ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: (kind:Expr(83)))) |
| StructuralComparison.cs:25:13:25:36 | Int32 z7 = ... | ((((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) :: ((kind:Expr(14),false,z7) :: (kind:Expr(83)))) |
| StructuralComparison.cs:25:18:25:25 | call to method M2 | ((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) |
| StructuralComparison.cs:25:18:25:25 | this access | (kind:Expr(12),false,Class) |
| StructuralComparison.cs:25:18:25:36 | ... + ... | (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (((kind:Expr(16),true,y) :: ((kind:Expr(16),true,x) :: ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,M2)))) :: (kind:Expr(44)))) |
@@ -157,35 +157,35 @@ gvn
| StructuralComparison.cs:38:14:38:25 | call to method <object initializer> | ((kind:Expr(12),false,DerivedClass) :: (kind:Expr(24),false,<object initializer>)) |
| StructuralComparison.cs:38:14:38:25 | this access | (kind:Expr(12),false,DerivedClass) |
| StructuralComparison.cs:38:14:38:25 | {...} | (kind:Stmt(1)) |
| StructuralComparison.cs:41:5:45:5 | {...} | ((((kind:Expr(14),false,x3) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x2) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) |
| StructuralComparison.cs:42:9:42:28 | ... ...; | (((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:41:5:45:5 | {...} | ((((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) |
| StructuralComparison.cs:42:9:42:28 | ... ...; | (((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:42:13:42:14 | access to local variable x1 | (kind:Expr(14),false,x1) |
| StructuralComparison.cs:42:13:42:27 | Int32 x1 = ... | ((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) |
| StructuralComparison.cs:42:13:42:27 | Int32 x1 = ... | ((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x1) :: (kind:Expr(83)))) |
| StructuralComparison.cs:42:18:42:21 | base access | (kind:Expr(13),false,BaseClass) |
| StructuralComparison.cs:42:18:42:27 | access to field Field | (kind:Expr(16),true,Field) |
| StructuralComparison.cs:43:9:43:23 | ... ...; | (((kind:Expr(14),false,x2) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:43:9:43:23 | ... ...; | (((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:43:13:43:14 | access to local variable x2 | (kind:Expr(14),false,x2) |
| StructuralComparison.cs:43:13:43:22 | Int32 x2 = ... | ((kind:Expr(14),false,x2) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) |
| StructuralComparison.cs:43:13:43:22 | Int32 x2 = ... | ((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x2) :: (kind:Expr(83)))) |
| StructuralComparison.cs:43:18:43:22 | access to field Field | (kind:Expr(16),true,Field) |
| StructuralComparison.cs:43:18:43:22 | this access | (kind:Expr(12),false,DerivedClass) |
| StructuralComparison.cs:44:9:44:28 | ... ...; | (((kind:Expr(14),false,x3) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:44:9:44:28 | ... ...; | (((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:44:13:44:14 | access to local variable x3 | (kind:Expr(14),false,x3) |
| StructuralComparison.cs:44:13:44:27 | Int32 x3 = ... | ((kind:Expr(14),false,x3) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) |
| StructuralComparison.cs:44:13:44:27 | Int32 x3 = ... | ((kind:Expr(16),true,Field) :: ((kind:Expr(14),false,x3) :: (kind:Expr(83)))) |
| StructuralComparison.cs:44:18:44:21 | this access | (kind:Expr(12),false,DerivedClass) |
| StructuralComparison.cs:44:18:44:27 | access to field Field | (kind:Expr(16),true,Field) |
| StructuralComparison.cs:48:5:52:5 | {...} | ((((kind:Expr(14),false,y3) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,y2) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,y1) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) |
| StructuralComparison.cs:49:9:49:27 | ... ...; | (((kind:Expr(14),false,y1) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:48:5:52:5 | {...} | ((((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) |
| StructuralComparison.cs:49:9:49:27 | ... ...; | (((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y1) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:49:13:49:14 | access to local variable y1 | (kind:Expr(14),false,y1) |
| StructuralComparison.cs:49:13:49:26 | Object y1 = ... | ((kind:Expr(14),false,y1) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) |
| StructuralComparison.cs:49:13:49:26 | Object y1 = ... | ((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y1) :: (kind:Expr(83)))) |
| StructuralComparison.cs:49:18:49:21 | base access | (kind:Expr(13),false,BaseClass) |
| StructuralComparison.cs:49:18:49:26 | access to property Prop | (kind:Expr(17),true,Prop) |
| StructuralComparison.cs:50:9:50:22 | ... ...; | (((kind:Expr(14),false,y2) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:50:9:50:22 | ... ...; | (((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y2) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:50:13:50:14 | access to local variable y2 | (kind:Expr(14),false,y2) |
| StructuralComparison.cs:50:13:50:21 | Object y2 = ... | ((kind:Expr(14),false,y2) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) |
| StructuralComparison.cs:50:13:50:21 | Object y2 = ... | ((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y2) :: (kind:Expr(83)))) |
| StructuralComparison.cs:50:18:50:21 | access to property Prop | (kind:Expr(17),true,Prop) |
| StructuralComparison.cs:50:18:50:21 | this access | (kind:Expr(12),false,DerivedClass) |
| StructuralComparison.cs:51:9:51:27 | ... ...; | (((kind:Expr(14),false,y3) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:51:9:51:27 | ... ...; | (((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y3) :: (kind:Expr(83)))) :: (kind:Stmt(22))) |
| StructuralComparison.cs:51:13:51:14 | access to local variable y3 | (kind:Expr(14),false,y3) |
| StructuralComparison.cs:51:13:51:26 | Object y3 = ... | ((kind:Expr(14),false,y3) :: ((kind:Expr(17),true,Prop) :: (kind:Expr(83)))) |
| StructuralComparison.cs:51:13:51:26 | Object y3 = ... | ((kind:Expr(17),true,Prop) :: ((kind:Expr(14),false,y3) :: (kind:Expr(83)))) |
| StructuralComparison.cs:51:18:51:21 | this access | (kind:Expr(12),false,DerivedClass) |
| StructuralComparison.cs:51:18:51:26 | access to property Prop | (kind:Expr(17),true,Prop) |

View File

@@ -89,4 +89,25 @@ class C1
lock (mutex) GoodProperty3 = value;
}
}
// GOOD: both getter and setter are locked.
int? property2;
int? GoodProperty5
{
get
{
lock (mutex)
{
property2 ??= 0;
return property2;
}
}
set
{
lock (mutex)
{
property2 = value;
}
}
}
}

View File

@@ -1,7 +1,7 @@
| DeadStoreOfLocal.cs:12:13:12:20 | Int32 x = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:12:13:12:13 | x | x |
| DeadStoreOfLocal.cs:19:21:19:25 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:18:13:18:13 | x | x |
| DeadStoreOfLocal.cs:44:13:44:20 | Int32 x = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:44:13:44:13 | x | x |
| DeadStoreOfLocal.cs:50:9:50:14 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:49:13:49:13 | x | x |
| DeadStoreOfLocal.cs:50:9:50:14 | ... += ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:49:13:49:13 | x | x |
| DeadStoreOfLocal.cs:56:9:56:11 | ...++ | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:55:13:55:13 | x | x |
| DeadStoreOfLocal.cs:82:22:82:24 | String val | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:82:22:82:24 | val | val |
| DeadStoreOfLocal.cs:101:13:101:37 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:94:40:94:44 | extra | extra |

View File

@@ -12,6 +12,8 @@ class Tests
a = param ?? param; // BAD
a = a ?? use(a); // BAD
a = Field ?? this.Field; // BAD
a ??= a; // BAD
a ??= b = a; // BAD
a = a ?? cache(ref a); // GOOD
a = a ?? store(out a); // GOOD
@@ -23,6 +25,7 @@ class Tests
?? a; // GOOD
a = a ?? store(out a)
?? a; // GOOD
a ??= param; // GOOD
}
int? cache(ref int? a)

View File

@@ -4,3 +4,5 @@
| UselessNullCoalescingExpression.cs:12:13:12:26 | ... ?? ... | Both operands of this null-coalescing expression access the same variable or property. |
| UselessNullCoalescingExpression.cs:13:13:13:23 | ... ?? ... | Both operands of this null-coalescing expression access the same variable or property. |
| UselessNullCoalescingExpression.cs:14:13:14:31 | ... ?? ... | Both operands of this null-coalescing expression access the same variable or property. |
| UselessNullCoalescingExpression.cs:15:9:15:15 | ... ??= ... | Both operands of this null-coalescing expression access the same variable or property. |
| UselessNullCoalescingExpression.cs:16:9:16:19 | ... ??= ... | Both operands of this null-coalescing expression access the same variable or property. |

View File

@@ -307,4 +307,10 @@ public class ContainerTest
{
Out(out var strings); // BAD: but allow for now (only C# 7 allows discards)
}
IList<int> TestNullcoalescingInitializations()
{
var l = new List<int> { 1, 2, 3 }; // GOOD: returned
return l ??= new List<int>();
}
}