lean4-htt/tests/lean/caseSuggestions.lean
jrr6 442ef6e64c
feat: add case name hints (#9316)
This PR adds clickable code-action hints to the "invalid case name"
error message.
2025-07-17 03:22:30 +00:00

55 lines
1.2 KiB
Text

/-!
# Provide case alternatives in "nonexistent tag" message
Test that the available case tags are suggested when a nonexistent
tag is requested. -/
/-!
This example tests what happens when no cases are available. -/
def noCases : Nat := by
case nonexistent =>
skip
/-!
This example tests what happens when just one case is available, but
it wasn't picked. -/
def oneCase : Nat := by
cases ()
case nonexistent =>
skip
/-!
Check varying numbers of cases to make sure the pretty-print setup for
the list is correct. -/
def twoCases : Nat := by
cases true
case nonexistent =>
skip
def fourCases : Nat := by
cases true <;> cases true
case nonexistent =>
skip
def eightCases : Nat := by
cases true <;> cases true <;> cases true
case nonexistent =>
skip
def sixteenCases : Nat := by
cases true <;> cases true <;> cases true <;> cases true
case nonexistent =>
skip
/-!
This example tests that the code-action hint doesn't appear when the identifier syntax is
synthetic.
-/
macro "faulty_case_selector " " => " ts:tacticSeq : tactic => `(tactic| case nonexistent => $ts)
def inapplicableSyntax : Nat := by
cases true
faulty_case_selector =>
skip