Resolve an Ixon KVMap (address-based) to Lean-level MData (name/value pairs). Used by kernel ingress to convert expression metadata from the content-addressed Ixon representation to the named kernel representation.
( kvm: &KVMap, ixon_env: &super::env::Env, )
| 311 | }, |
| 312 | I::Axio { name, lvls, arena: a, .. } |
| 313 | | I::Quot { name, lvls, arena: a, .. } => { |
| 314 | names.push(name.clone()); |
| 315 | names.extend(lvls.iter().cloned()); |
| 316 | arena = Some(a); |
| 317 | }, |
| 318 | I::Indc { name, lvls, ctors, all, ctx, arena: a, .. } => { |
| 319 | names.push(name.clone()); |
| 320 | names.extend(lvls.iter().cloned()); |
| 321 | names.extend(ctors.iter().cloned()); |
| 322 | names.extend(all.iter().cloned()); |
| 323 | names.extend(ctx.iter().cloned()); |
| 324 | arena = Some(a); |
| 325 | }, |
| 326 | I::Ctor { name, lvls, induct, arena: a, .. } => { |
| 327 | names.push(name.clone()); |
| 328 | names.extend(lvls.iter().cloned()); |
| 329 | names.push(induct.clone()); |
| 330 | arena = Some(a); |
| 331 | }, |
| 332 | I::Rec { name, lvls, rules, all, ctx, arena: a, .. } => { |
| 333 | names.push(name.clone()); |
| 334 | names.extend(lvls.iter().cloned()); |
| 335 | names.extend(rules.iter().cloned()); |
| 336 | names.extend(all.iter().cloned()); |
| 337 | names.extend(ctx.iter().cloned()); |
| 338 | arena = Some(a); |
| 339 | }, |
| 340 | I::Muts { all, .. } => { |
| 341 | for class in all { |
| 342 | names.extend(class.iter().cloned()); |
| 343 | } |
| 344 | }, |
| 345 | } |
| 346 | if let Some(a) = arena { |
| 347 | for node in &a.nodes { |
| 348 | match node { |
| 349 | ExprMetaData::Leaf | ExprMetaData::App { .. } => {}, |
| 350 | ExprMetaData::Binder { name, .. } |
| 351 | | ExprMetaData::LetBinder { name, .. } |
| 352 | | ExprMetaData::Ref { name } |
| 353 | | ExprMetaData::CallSite { name, .. } => names.push(name.clone()), |
| 354 | ExprMetaData::Prj { struct_name, .. } => { |
| 355 | names.push(struct_name.clone()); |
| 356 | }, |
| 357 | ExprMetaData::Mdata { mdata, .. } => { |
no test coverage detected