This PR fixes a bug in `withTrackingZetaDelta` and `withTrackingZetaDeltaSet`. The `MetaM` caches need to be reset. See new test.
33 lines
898 B
Text
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)}"
|