fix: delaborator: bind without lambda
This commit is contained in:
parent
4ec85a39a5
commit
1490d095a8
3 changed files with 7 additions and 3 deletions
|
|
@ -576,7 +576,7 @@ partial def delabDoElems : DelabM (List Syntax) := do
|
|||
prependAndRec `(doElem|let $n:term ← $ma)
|
||||
else
|
||||
prependAndRec `(doElem|$ma:term)
|
||||
| _ => delabAndRet
|
||||
| _ => failure
|
||||
else if e.isLet then
|
||||
let Expr.letE n t v b _ ← getExpr | unreachable!
|
||||
let n ← getUnusedName n b
|
||||
|
|
@ -587,10 +587,10 @@ partial def delabDoElems : DelabM (List Syntax) := do
|
|||
descend b 2 $
|
||||
prependAndRec `(doElem|let $(mkIdent n) : $stxT := $stxV)
|
||||
else
|
||||
delabAndRet
|
||||
let stx ← delab
|
||||
[←`(doElem|$stx:term)]
|
||||
where
|
||||
prependAndRec x : DelabM _ := List.cons <$> x <*> delabDoElems
|
||||
delabAndRet : DelabM _ := do let stx ← delab; [←`(doElem|$stx:term)]
|
||||
|
||||
@[builtinDelab app.Bind.bind]
|
||||
def delabDo : Delab := whenPPOption getPPNotation do
|
||||
|
|
|
|||
|
|
@ -100,3 +100,5 @@ set_option pp.structure_instance_type true in
|
|||
discard <| pure 2
|
||||
let y := 3
|
||||
return x + y))
|
||||
|
||||
#eval checkM `(typeAs (Id Nat) (pure 1 >>= pure))
|
||||
|
|
|
|||
|
|
@ -63,3 +63,5 @@ typeAs Nat
|
|||
discard (pure 2)
|
||||
let y : Nat := 3
|
||||
pure (x + y))
|
||||
typeAs (Id Nat)
|
||||
(pure 1 >>= pure)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue