feat: expand nested dos

This commit is contained in:
Leonardo de Moura 2020-10-15 17:11:50 -07:00
parent 765319e94a
commit 63e982768a
2 changed files with 14 additions and 0 deletions

View file

@ -1451,6 +1451,9 @@ partial def doSeqToCode : List Syntax → M CodeBlock
mkSeq doElem <$> doSeqToCode doElems
else if k == `Lean.Parser.Term.doAssert then
mkSeq doElem <$> doSeqToCode doElems
else if k == `Lean.Parser.Term.doNested then
let nestedDoSeq := doElem[1]
doSeqToCode (getDoSeqElems nestedDoSeq ++ doElems)
else if k == `Lean.Parser.Term.doExpr then
let term := doElem[0]
if doElems.isEmpty then

View file

@ -0,0 +1,11 @@
#lang lean4
def f (x : Nat) : StateM Nat Nat := do
let y ← do
modify (·+1)
let s ← get
pure $ s + x
pure $ y + 1
theorem ex1 : (f 5).run' 2 = 9 :=
rfl