lean4-htt/tests/lean/run/trackZetaDeltaCacheIssue.lean
Leonardo de Moura 6571bc01d7
fix: withTrackingZetaDelta must reset cache (#6381)
This PR fixes a bug in `withTrackingZetaDelta` and
`withTrackingZetaDeltaSet`. The `MetaM` caches need to be reset. See new
test.
2024-12-14 18:23:32 +00:00

33 lines
898 B
Text

import Lean
open Lean Meta
def g : Nat → String := fun _ => ""
/--
info: String
[A]
-/
#guard_msgs in
run_meta do
withLetDecl `A (mkSort 1) (← mkArrow (mkConst ``Nat) (mkConst ``String)) fun A => do
withLetDecl `g A (mkConst ``g) fun g => do
let e := mkApp g (mkNatLit 0)
withTrackingZetaDelta do
IO.println (← ppExpr (← inferType e))
IO.println s!"{← (← getZetaDeltaFVarIds).toList.mapM fun x => ppExpr (mkFVar x)}"
/--
info: String
String
[A]
-/
#guard_msgs in
run_meta do
withLetDecl `A (mkSort 1) (← mkArrow (mkConst ``Nat) (mkConst ``String)) fun A => do
withLetDecl `g A (mkConst ``g) fun g => do
let e := mkApp g (mkNatLit 0)
IO.println (← ppExpr (← inferType e))
withTrackingZetaDelta do
IO.println (← ppExpr (← inferType e))
IO.println s!"{← (← getZetaDeltaFVarIds).toList.mapM fun x => ppExpr (mkFVar x)}"