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.
23 lines
683 B
Text
23 lines
683 B
Text
import Lean.Meta.Basic
|
|
|
|
open Lean.Meta
|
|
|
|
def traceIt : MetaM Unit := do
|
|
Lean.withTraceNode `Meta.debug (fun _ => return m!"root") do
|
|
Lean.withTraceNode `Meta.debug (fun _ => return m!"child1") do
|
|
trace[Meta.debug] "child11"
|
|
trace[Meta.debug] "child12"
|
|
trace[Meta.debug] "child13"
|
|
Lean.withTraceNode `Meta.debug (fun _ => return m!"child2") do
|
|
trace[Meta.debug] "child21"
|
|
trace[Meta.debug] "child22"
|
|
Lean.withTraceNode `Meta.debug (fun _ => return m!"child3") do
|
|
trace[Meta.debug] "child31"
|
|
trace[Meta.debug] "child4"
|
|
|
|
set_option trace.Meta.debug true
|
|
|
|
#eval traceIt
|
|
|
|
--^ collectDiagnostics
|
|
--^ interactiveDiagnostics:expandTraces
|