lean4-htt/tests/lean/interactive/unknownIdentifierCodeActions.lean
Marc Huisinga 80b8e44072
test: fix test flakiness (#10680)
This PR fixes several causes of test flakiness and re-enables the tests
that were disabled in #10665, #10669 and #10673.

Specifically, it fixes:
- A race condition in the file worker that caused it to report an
incomplete snapshot prefix in the inlay hint request (confirmed to be
the cause of #10665)
- A bug in the test runner where it didn't correctly account for
non-deterministic message ordering inducing different RPC pointer
numbering (confirmed to be the cause of #10673)
- A race condition in the watchdog that would sometimes cause the module
hierarchy to be empty (likely the cause of #10669, but not confirmed as
this issue only reproduced again once in tens of thousands of test runs
on various machines, including CI)
- An unrelated bug in the module hierarchy implementation that would
cause it to report an empty module hierarchy when the file was changed

It also replaces some calls to `Task.get` in the language server with
`IO.wait` to protect the code against unfortunate compiler re-ordering.
2025-10-08 13:33:56 +00:00

31 lines
885 B
Text

--^ waitForILeans
#check Lean.Server.Test.Refs.test1
--^ codeAction
example : LeanServerTestRefsTest0
--^ codeAction
#check Lean.Server.Test.Refs.test
--^ codeAction
structure Foobar where
veryLongAndHopefullyVeryUniqueBar0 : Nat
namespace Foobar
def veryLongAndHopefullyVeryUniqueFoo0 := 0
def veryLongAndHopefullyVeryUniqueFoobar0 : Foobar := { veryLongAndHopefullyVeryUniqueBar0 := 0 }
end Foobar
open Foobar
#check veryLongAndHopefullyVeryUniqueFoo
--^ codeAction
example (f : Foobar) : Nat := f.veryLongAndHopefullyVeryUniqueBar
--^ codeAction
example : Foobar := .veryLongAndHopefullyVeryUniqueFoobar
--^ codeAction