Commit 3172a7c
Fine. Track mixin base flag and super-invoked names.
Capture additional mixin semantics in the fine-grained manifest to
improve dependency sensitivity and determinism.
- Add `isBase` to `MixinItem` and include it in encode/read/match/write,
so manifest IDs change when a mixin’s base modifier changes.
- Record `superInvokedNames` in `MixinItem` as a `List<LookupName>` and
include it in matching, making the manifest sensitive to whether a
mixin invokes a member on `super` (getter, setter, or method).
- Canonicalize `superInvokedNames` by sorting them during collection in
`LibraryBuilder.collectMixinSuperInvokedNames()`, eliminating
nondeterminism from source reordering.
- Add `SummaryDataReader.readLookupNameList()` to simplify decoding of
`LookupName` lists.
- Bump `AnalysisDriver.DATA_VERSION` to 532 to reflect the binary format
change and invalidate incompatible caches.
These changes ensure that altering a mixin’s base status or its use of
`super` correctly affects manifest identity, while simple reordering of
`super` calls does not.
Change-Id: I9147f6505070f28ffbc476acac3cdaaaf55c2fc1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/448000
Commit-Queue: Konstantin Shcheglov <[email protected]>
Reviewed-by: Johnni Winther <[email protected]>1 parent b54e38e commit 3172a7c
File tree
5 files changed
+519
-3
lines changed- pkg/analyzer
- lib/src
- dart/analysis
- fine
- summary2
- test/src/dart/analysis
5 files changed
+519
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
166 | 170 | | |
167 | 171 | | |
168 | 172 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1176 | 1176 | | |
1177 | 1177 | | |
1178 | 1178 | | |
| 1179 | + | |
1179 | 1180 | | |
| 1181 | + | |
1180 | 1182 | | |
1181 | 1183 | | |
1182 | 1184 | | |
| |||
1193 | 1195 | | |
1194 | 1196 | | |
1195 | 1197 | | |
| 1198 | + | |
1196 | 1199 | | |
| 1200 | + | |
1197 | 1201 | | |
1198 | 1202 | | |
1199 | 1203 | | |
| |||
1219 | 1223 | | |
1220 | 1224 | | |
1221 | 1225 | | |
| 1226 | + | |
1222 | 1227 | | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
1223 | 1231 | | |
1224 | 1232 | | |
1225 | 1233 | | |
| |||
1240 | 1248 | | |
1241 | 1249 | | |
1242 | 1250 | | |
| 1251 | + | |
1243 | 1252 | | |
| 1253 | + | |
1244 | 1254 | | |
1245 | 1255 | | |
1246 | 1256 | | |
1247 | 1257 | | |
1248 | 1258 | | |
1249 | 1259 | | |
1250 | | - | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
1251 | 1266 | | |
1252 | 1267 | | |
1253 | 1268 | | |
1254 | 1269 | | |
1255 | 1270 | | |
| 1271 | + | |
1256 | 1272 | | |
| 1273 | + | |
1257 | 1274 | | |
1258 | 1275 | | |
1259 | 1276 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
277 | 278 | | |
278 | 279 | | |
279 | 280 | | |
280 | | - | |
| 281 | + | |
281 | 282 | | |
282 | 283 | | |
283 | 284 | | |
| |||
0 commit comments