Skip to content

Commit cc24b34

Browse files
committed
feat: return QuotedDefEq from Meta wrappers
1 parent f0c584b commit cc24b34

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Qq/Match.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ scoped elab "_qq_match" pat:term " ← " e:term " | " alt:term " in " body:term
268268
let argLvlExpr ← mkFreshExprMVarQ q(Level)
269269
let argTyExpr ← mkFreshExprMVarQ q(Quoted (.sort $argLvlExpr))
270270
let e' ← elabTermEnsuringTypeQ e q(Quoted $argTyExpr)
271-
let argTyExpr ← instantiateMVarsQ argTyExpr
271+
let argTyExpr, _⟩ ← instantiateMVarsQ argTyExpr
272272

273273
let ((lctx, localInsts, type), s) ← (unquoteForMatch argTyExpr).run { mayPostpone := (← read).mayPostpone }
274274
let (pat, patVarDecls, newLevels) ← elabPat pat lctx localInsts type s.levelNames

Qq/MetaM.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ def trySynthInstanceQ (α : Q(Sort u)) : MetaM (LOption Q($α)) := do
2727
def synthInstanceQ (α : Q(Sort u)) : MetaM Q($α) := do
2828
synthInstance α
2929

30-
def instantiateMVarsQ {α : Q(Sort u)} (e : Q($α)) : MetaM Q($α) := do
31-
instantiateMVars e
30+
/-- `Lean.instantiateMVars`, with the guarantee that the result is defeq to the original. -/
31+
def instantiateMVarsQ {α : Q(Sort u)} (e : Q($α)) : MetaM ((e' : Q($α)) ×' $e' =Q $e) :=
32+
return ⟨← instantiateMVars e, ⟨⟩⟩
33+
34+
set_option linter.unusedVariables false in
35+
/-- `Lean.instantiateLevelMVars`, with the guarantee that the result is defeq to the original. -/
36+
def instantiateLevelMVarsQ (u : Level) : MetaM ((u' : Level) ×' u' =QL u) :=
37+
return ⟨← instantiateLevelMVars u, ⟨⟩⟩
3238

3339
def elabTermEnsuringTypeQ (stx : Syntax) (expectedType : Q(Sort u))
3440
(catchExPostpone := true) (implicitLambda := true) (errorMsgHeader? : Option String := none) :

0 commit comments

Comments
 (0)