Skip to content

Commit 62fd973

Browse files
authored
fix: make getArg!' compute the correct arg index to access (#10567)
This PR fixes argument index calculation in `Lean.Expr.getArg!'`.
1 parent 71e09ca commit 62fd973

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/Lean/Expr.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,7 @@ def getRevArg!' : Expr → Nat → Expr
12671267
getRevArg! e (n - i - 1)
12681268

12691269
/-- Similar to `getArg!`, but skips mdata -/
1270-
@[inline] def getArg!' (e : Expr) (i : Nat) (n := e.getAppNumArgs) : Expr :=
1270+
@[inline] def getArg!' (e : Expr) (i : Nat) (n := e.getAppNumArgs') : Expr :=
12711271
getRevArg!' e (n - i - 1)
12721272

12731273
/-- Given `f a₀ a₁ ... aₙ`, returns the `i`th argument or returns `v₀` if out of bounds. -/

tests/lean/run/getArgPrime.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import Lean.Expr
2+
3+
open Lean Expr
4+
5+
example :
6+
getArg! (mkApp (.mdata .empty (mkApp (mkConst ``Nat.add) (mkNatLit 1))) (mkNatLit 2)) 0
7+
= mkNatLit 2 := rfl
8+
9+
example :
10+
getArg!' (mkApp (.mdata .empty (mkApp (mkConst ``Nat.add) (mkNatLit 1))) (mkNatLit 2)) 0
11+
= mkNatLit 1 := rfl

0 commit comments

Comments
 (0)