Repository navigation
Commit 40756e3
committed
fix(extractor): base-chain bare DisposeAsync + non-generic-IEnumerator regression pin (review r2)
Second review round on #240:
- Bare DisposeAsync on a BASE (P2): the belt-and-braces async check used
nt.GetMembers() (current type only), so a base with a bare
`public ValueTask DisposeAsync()` that does NOT implement IAsyncDisposable
slipped its real async cleanup through — AllInterfaces misses it (no
interface) and the member scan misses it (inherited). Now walks the whole
base chain. New flagged control BareInheritedAsyncEnumerator ('ba').
- Non-generic IEnumerator regression pin (P2): the IEnumerator<T>-only
narrowing had no negative fixture. Added LegacyEnumerator (IEnumerator +
IDisposable, empty Dispose) -> must stay flagged ('ng'). Flow count 6 -> 8.
- Stale docs (P3): the HasEmptyDisposeBody header, the sample-file header
still said "generalises to any type" — the exact over-broad framing that
produced #238. Rewritten to the actual IEnumerator<T>-only scope.
Verified with the real extractor: flow flags exactly s,r,lr,d,ar,ia,ba,ng
with the two generic enumerators (e,x) silent; full-sample diff vs main
byte-identical. run_tests 276/276, ruff, mypy green.
Refs #238
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsWw4Ay8KLTHFom1HvRu3U1 parent 0d1411c commit 40756e3
3 files changed
Lines changed: 91 additions & 21 deletions
File tree
- .github/workflows
- frontend/roslyn
- OwnSharp.Extractor
- samples
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1128 | 1128 | | |
1129 | 1129 | | |
1130 | 1130 | | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
1131 | 1139 | | |
1132 | 1140 | | |
1133 | 1141 | | |
1134 | 1142 | | |
1135 | 1143 | | |
1136 | 1144 | | |
1137 | | - | |
| 1145 | + | |
1138 | 1146 | | |
1139 | | - | |
1140 | | - | |
| 1147 | + | |
| 1148 | + | |
1141 | 1149 | | |
1142 | 1150 | | |
1143 | 1151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1431 | 1431 | | |
1432 | 1432 | | |
1433 | 1433 | | |
1434 | | - | |
1435 | | - | |
1436 | | - | |
1437 | | - | |
1438 | | - | |
1439 | | - | |
1440 | | - | |
1441 | | - | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
1442 | 1445 | | |
1443 | 1446 | | |
1444 | 1447 | | |
| |||
1478 | 1481 | | |
1479 | 1482 | | |
1480 | 1483 | | |
1481 | | - | |
1482 | | - | |
1483 | | - | |
1484 | | - | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
1485 | 1492 | | |
1486 | 1493 | | |
1487 | 1494 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
112 | 113 | | |
113 | 114 | | |
114 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
115 | 150 | | |
116 | 151 | | |
117 | 152 | | |
| |||
178 | 213 | | |
179 | 214 | | |
180 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
181 | 236 | | |
0 commit comments