lean4-htt/tests/lean/interactive/dottedIdentNotation.lean
Marc Huisinga dfd3d18530
test: improve language server test coverage (#10574)
This PR significantly improves the test coverage of the language server,
providing at least a single basic test for every request that is used by
the client. It also implements infrastructure for testing all of these
requests, e.g. the ability to run interactive tests in a project context
and refactors the interactive test runner to be more maintainable.
Finally, it also fixes a small bug with the recently implemented unknown
identifier code actions for auto-implicits (#10442) that was discovered
in testing, where the "import all unambiguous unknown identifiers" code
action didn't work correctly on auto-implicit identifiers.
2025-09-30 11:15:03 +00:00

68 lines
1.3 KiB
Text

/-!
# Interactive tests of dotted ident notation (`.f x y z`)
-/
/-!
Basic tests
-/
inductive MyNat
| zero | succ (n : MyNat)
example : MyNat := .ze
--^ completion
example : MyNat → MyNat := .su
--^ completion
/-!
Unfolding a type
-/
def MyNat' := MyNat
example : MyNat' := .ze
--^ completion
example : MyNat' → MyNat' := .su
--^ completion
/-!
Seeing through type annotations
-/
example : outParam MyNat := .ze
--^ completion
-- Definitions that are in the annotation's namespace are *not* reported
def outParam.baz : MyNat := .zero
example : outParam MyNat := .ba
--^ completion
/-!
Aliases are currently not supported
-/
namespace MyLib
def MyNat.zero' : MyNat := .zero
end MyLib
namespace MyNat
export MyLib.MyNat (zero')
end MyNat
example : MyNat := .zero
--^ completion
example : MyNat := .zero' -- it successfully elaborates
/-!
Open namespaces are currently not supported
-/
namespace MyLib
def MyNat.succ' : MyNat → MyNat := .succ
end MyLib
open MyLib in
example : MyNat → MyNat := .succ
--^ completion
open MyLib in
example : MyNat → MyNat := .succ' -- it successfully elaborates