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.
31 lines
885 B
Text
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
|