()
| 4045 | stt.blocks.insert(cnst.name(), class_ordering.clone()); |
| 4046 | } |
| 4047 | } |
| 4048 | |
| 4049 | // Store block size statistics (keyed by low-link name) |
| 4050 | stt.block_stats.insert( |
| 4051 | name.clone(), |
| 4052 | BlockSizeStats { |
| 4053 | hash_consed_size: compiled.hash_consed_size, |
| 4054 | serialized_size: compiled.serialized_size, |
| 4055 | const_count, |
| 4056 | }, |
| 4057 | ); |
| 4058 | } |
| 4059 | |
| 4060 | // Create projections for each constant. |
| 4061 | // When aux=true: store Ixon blobs and register Named entries (normal path). |
| 4062 | // When aux=false: promote from aux_name_to_addr, setting Named.original |
| 4063 | // with the original (proj_addr, meta) for decompilation roundtrip. |
| 4064 | let mut idx = 0u64; |
| 4065 | for class in &sorted_classes { |
| 4066 | for cnst in class { |
| 4067 | let n = cnst.name(); |
| 4068 | let meta = all_metas.get(&n).cloned().unwrap_or_default(); |
| 4069 | |
| 4070 | let proj = match cnst { |
| 4071 | MutConst::Defn(_) => defn_proj_constant(idx, block_addr.clone()), |
| 4072 | MutConst::Indc(ind) => { |
| 4073 | // Inductive projection |
| 4074 | let indc_proj = indc_proj_constant(idx, block_addr.clone()); |
nothing calls this directly
no test coverage detected