You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Class subtype metadata is now optional rather than always present. `ClassItem.allSubtypes` and `ClassItem.directSubtypesOfSealed` are changed to `ManifestItemIdList?` so we can distinguish “not recorded / not applicable” from “recorded but empty”. This reduces bundle size and prevents spurious requirement mismatches when these values weren’t requested. Key changes: - Switch `ClassItem.allSubtypes` and `directSubtypesOfSealed` to nullable; update binary read/write to use optional encodings. - Only populate `allSubtypes` when `ClassElementImpl.allSubtypes` is non-null; only populate `directSubtypesOfSealed` for sealed classes. - Extend requirement tracking with `allSubtypesRequested`/`directSubtypesOfSealedRequested` flags and compare values only when requested. Mismatch types now carry nullable expected/actual lists. - Update hash computation to include optional lists via `addOptionalIdList`. - Adjust printers to emit these fields only when meaningful; print `<null>` when a requested value is absent. - Bump `AnalysisDriver.DATA_VERSION` to 577 to reflect the format change. - Refresh tests and expected outputs to the new semantics. This clarifies intent (requested vs. empty), avoids false positives in requirements checking, and slightly shrinks stored manifests. Change-Id: I21ba890d63575e7bc5498d08e894580b662283f6 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/455340 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
0 commit comments