def
Lean.Elab.runTactic
(mvarId : Lean.MVarId)
(tacticCode : Lean.Syntax)
(ctx : optParam Lean.Elab.Term.Context Lean.Elab.runTactic.defaultContext)
(s : optParam Lean.Elab.Term.State
{ levelNames := [], syntheticMVars := [], mvarErrorInfos := ∅,
messages :=
{ msgs :=
{ root := Std.PersistentArrayNode.node (Array.mkEmpty (USize.toNat Std.PersistentArray.branching)),
tail := Array.mkEmpty (USize.toNat Std.PersistentArray.branching), size := 0,
shift := Std.PersistentArray.initShift, tailOff := 0 } },
letRecsToLift := [],
infoState :=
{ enabled := false,
assignment :=
{ root := Std.PersistentHashMap.Node.entries Std.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
trees :=
{ root := Std.PersistentArrayNode.node (Array.mkEmpty (USize.toNat Std.PersistentArray.branching)),
tail := Array.mkEmpty (USize.toNat Std.PersistentArray.branching), size := 0,
shift := Std.PersistentArray.initShift, tailOff := 0 } } })
:
Equations
- Lean.Elab.runTactic mvarId tacticCode ctx s = do modifyThe Lean.Meta.State fun s => { mctx := Lean.MetavarContext.instantiateMVarDeclMVars s.mctx mvarId, cache := s.cache, zetaFVarIds := s.zetaFVarIds, postponed := s.postponed } let go : Lean.Elab.TermElabM (List Lean.MVarId) := Lean.Elab.Term.withSynthesize (Lean.Elab.Tactic.run mvarId (SeqRight.seqRight (Lean.Elab.Tactic.evalTactic tacticCode) fun x => Lean.Elab.Tactic.pruneSolvedGoals)) Lean.Elab.Term.TermElabM.run go ctx s