chore: haveId node kind
This commit is contained in:
parent
66777670e8
commit
26b6718422
3 changed files with 7 additions and 3 deletions
|
|
@ -182,7 +182,8 @@ def mkDecEqEnum (declName : Name) : CommandElabM Unit := do
|
|||
fun x y =>
|
||||
if h : x.toCtorIdx = y.toCtorIdx then
|
||||
-- We use `rfl` in the following proof because the first script fails for unit-like datatypes due to etaStruct.
|
||||
isTrue (by first | have aux := congrArg $ofNatIdent h; rw [$auxThmIdent:ident, $auxThmIdent:ident] at aux; assumption | rfl)
|
||||
-- Temporarily avoiding tactic `have` for bootstrapping
|
||||
isTrue (by first | refine_lift have aux := congrArg $ofNatIdent h; ?_; rw [$auxThmIdent:ident, $auxThmIdent:ident] at aux; assumption | rfl)
|
||||
else
|
||||
isFalse fun h => by subst h; contradiction
|
||||
)
|
||||
|
|
|
|||
|
|
@ -542,8 +542,11 @@ It is often used when building macros.
|
|||
@[builtin_term_parser] def «let_tmp» := leading_parser:leadPrec
|
||||
withPosition ("let_tmp " >> letDecl) >> optSemicolon termParser
|
||||
|
||||
def haveId := leading_parser (withAnonymousAntiquot := false)
|
||||
(ppSpace >> binderIdent) <|> hygieneInfo
|
||||
/- like `let_fun` but with optional name -/
|
||||
def haveIdLhs := ((ppSpace >> binderIdent) <|> hygieneInfo) >> many (ppSpace >> letIdBinder) >> optType
|
||||
def haveIdLhs :=
|
||||
haveId >> many (ppSpace >> letIdBinder) >> optType
|
||||
def haveIdDecl := leading_parser (withAnonymousAntiquot := false)
|
||||
atomic (haveIdLhs >> " := ") >> termParser
|
||||
def haveEqnsDecl := leading_parser (withAnonymousAntiquot := false)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ options get_default_options() {
|
|||
// switch to `true` for ABI-breaking changes affecting meta code
|
||||
opts = opts.update({"interpreter", "prefer_native"}, false);
|
||||
// switch to `true` for changing built-in parsers used in quotations
|
||||
opts = opts.update({"internal", "parseQuotWithCurrentStage"}, false);
|
||||
opts = opts.update({"internal", "parseQuotWithCurrentStage"}, true);
|
||||
// toggling `parseQuotWithCurrentStage` may also require toggling the following option if macros/syntax
|
||||
// with custom precheck hooks were affected
|
||||
opts = opts.update({"quotPrecheck"}, true);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue