Collect unassigned metavariables occuring in the given expression.
Remark: if e
contains ?m
and there is a t
assigned to ?m
, we
collect unassigned metavariables occurring in t
.
Remark: if e
contains ?m
and ?m
is delayed assigned to some term t
,
we collect ?m
and unassigned metavariables occurring in t
.
We collect ?m
because it has not been assigned yet.
Return metavariables in occuring the given expression. See collectMVars
Equations
- Lean.Meta.getMVars e = do let __discr ← StateRefT'.run (Lean.Meta.collectMVars e) { visitedExpr := ∅, result := #[] } match __discr with | (fst, s) => pure s.result
Instances For
Similar to getMVars, but removes delayed assignments.
Equations
- Lean.Meta.getMVarsNoDelayed e = do let mvarIds ← Lean.Meta.getMVars e Array.filterM (fun mvarId => not <$> Lean.MVarId.isDelayedAssigned mvarId) mvarIds 0 (Array.size mvarIds)
Instances For
Equations
- Lean.Meta.getMVarsAtDecl d = do let __discr ← StateRefT'.run (Lean.Meta.collectMVarsAtDecl d) { visitedExpr := ∅, result := #[] } match __discr with | (fst, s) => pure s.result