Delegate indexed deserialization, then deserialize extension tables.
(
buf: &mut &[u8],
rev: &NameReverseIndex,
)
| 270 | /// Whether this metadata has any wrapper extension payload (surgery |
| 271 | /// tables or level-spelling patches). |
| 272 | pub fn has_extensions(&self) -> bool { |
| 273 | !self.meta_sharing.is_empty() |
| 274 | || !self.meta_refs.is_empty() |
| 275 | || !self.meta_univs.is_empty() |
| 276 | || !self.univ_patches.is_empty() |
| 277 | } |
| 278 | |
| 279 | /// Enumerate every external address this metadata references, |
| 280 | /// partitioned by the table that resolves it: |
| 281 | /// |
| 282 | /// - `names`: name-component addresses (resolved against |
| 283 | /// `Env.names`) — the variant's `name`/`lvls`/`all`/`ctx`/... |
| 284 | /// fields, arena binder/ref/proj/call-site names, and KVMap keys |
| 285 | /// plus `DataValue::OfName` payloads; |
| 286 | /// - `blobs`: raw-byte payload addresses (`DataValue` |
| 287 | /// strings/nats/ints/syntax, resolved against `Env.blobs`); |
| 288 | /// - `dag`: `meta_refs` extension-table addresses — constants or |
| 289 | /// blobs referenced by collapsed call-site argument expressions, |
| 290 | /// i.e. genuine value-DAG edges the primary `Constant.refs` walk |
| 291 | /// cannot see. |
| 292 | /// |
| 293 | /// Used by `Env::prune_to_closure` to carry a bundle's display |
| 294 | /// metadata completely. Duplicates are not filtered; callers dedup. |
| 295 | pub fn collect_deps( |
| 296 | &self, |
| 297 | names: &mut Vec<Address>, |
| 298 | blobs: &mut Vec<Address>, |
nothing calls this directly
no test coverage detected