MCPcopy Create free account
hub / github.com/argumentcomputer/ix / push_fvar_decl_anon

Method push_fvar_decl_anon

crates/kernel/src/tc.rs:617–624  ·  view source on GitHub ↗

Push a fresh fvar declaration without any body to instantiate. Useful for paths that introduce a binder for type-tracking purposes only (e.g. inductive validation walks where the binder is consumed later or in parallel). Returns the fvar id and the interned fvar expression.

(&mut self, ty: KExpr<M>)

Source from the content-addressed store, hash-verified

615 let fv_id = self.fresh_fvar_id();
616 let fv = self.intern(KExpr::fvar(fv_id, name.clone()));
617 self.lctx.push(fv_id, LocalDecl::LDecl { name, ty, val });
618 let body_open = instantiate_rev(&mut self.env.intern, body, &[fv]);
619 (body_open, fv_id)
620 }
621
622 /// Push a fresh fvar declaration without any body to instantiate.
623 /// Useful for paths that introduce a binder for type-tracking purposes
624 /// only (e.g. inductive validation walks where the binder is consumed
625 /// later or in parallel). Returns the fvar id and the interned fvar
626 /// expression.
627 pub fn push_fvar_decl_anon(&mut self, ty: KExpr<M>) -> (FVarId, KExpr<M>) {

Callers 5

build_minor_at_depthMethod · 0.80
build_direct_ihMethod · 0.80
build_rec_typeMethod · 0.80
find_peer_recursorsMethod · 0.80
check_recursor_memberMethod · 0.80

Calls 4

internMethod · 0.80
pushMethod · 0.80
fresh_fvar_idMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected