lean4-htt/tests/lean/run/grindDeprecated.lean
Kim Morrison 351a941756
fix: show deprecation warnings for grind theorem arguments (#11593)
This PR fixes an issue where `grind` did not display deprecation
warnings when deprecated lemmas were used in its argument list.

The fix adds explicit calls to `Linter.checkDeprecated` after resolving
theorem names in both `processParam` (for theorem arguments) and
`elabGrindParams` (for the `-` erase syntax).

Closes #11582

🤖 Prepared with Claude Code

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 00:43:15 +00:00

27 lines
972 B
Text

/-!
Test that `grind` flags deprecated theorems.
See https://github.com/leanprover/lean4/issues/11582
-/
set_option backward.grind.inferPattern true -- Use old pattern inference (no suggestions)
set_option linter.deprecated true -- Enable the deprecated linter (test framework disables all linters)
def foo : Nat := 0
@[deprecated "use foo_eq_zero' instead" (since := "2025-01-01")]
theorem foo_eq_zero : foo = 0 := rfl
/-- warning: `foo_eq_zero` has been deprecated: use foo_eq_zero' instead -/
#guard_msgs in
example : foo = foo := by grind [foo_eq_zero]
-- Also test the `-` syntax for erasing theorems
@[grind]
theorem bar_eq_zero : foo = 0 := rfl
-- This theorem is deprecated AND marked with @[grind], so we can erase it
@[deprecated bar_eq_zero (since := "2025-01-01"), grind]
theorem bar_eq_zero' : foo = 0 := rfl
/-- warning: `bar_eq_zero'` has been deprecated: Use `bar_eq_zero` instead -/
#guard_msgs in
example : foo = foo := by grind [- bar_eq_zero']