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.
61 lines
2 KiB
Text
61 lines
2 KiB
Text
{"textDocument": {"uri": "file:///interactiveGoalPopups.lean"},
|
|
"position": {"line": 14, "character": 2}}
|
|
{"goals":
|
|
[{"type":
|
|
{"tag": [{"subexprPos": "/", "info": {"p": "4"}}, {"text": "MyTrue"}]},
|
|
"mvarId": "[anonymous]",
|
|
"isRemoved": true,
|
|
"hyps":
|
|
[{"type":
|
|
{"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "MyNat"}]},
|
|
"names": ["x"],
|
|
"fvarIds": []},
|
|
{"type":
|
|
{"tag":
|
|
[{"subexprPos": "/", "info": {"p": "1"}},
|
|
{"append":
|
|
[{"text": "MyEq "},
|
|
{"tag": [{"subexprPos": "/0/1", "info": {"p": "2"}}, {"text": "x"}]},
|
|
{"text": " "},
|
|
{"tag": [{"subexprPos": "/1", "info": {"p": "3"}}, {"text": "x"}]}]}]},
|
|
"names": ["h"],
|
|
"fvarIds": []}],
|
|
"goalPrefix": "⊢ ",
|
|
"ctx": {"p": "5"}}]}
|
|
Popups for type of x:
|
|
Popup for MyNat:
|
|
{"p": "0"}
|
|
{"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Type"}]},
|
|
"exprExplicit": {"text": "MyNat"},
|
|
"doc": "MyNat doc "}
|
|
Popups for type of h:
|
|
Popup for MyEq x x:
|
|
{"p": "1"}
|
|
{"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Prop"}]},
|
|
"exprExplicit":
|
|
{"append":
|
|
[{"text": "@"},
|
|
{"tag": [{"subexprPos": "/0/0/0", "info": {"p": "1"}}, {"text": "MyEq"}]},
|
|
{"text": " "},
|
|
{"tag": [{"subexprPos": "/0/0/1", "info": {"p": "2"}}, {"text": "MyNat"}]},
|
|
{"text": " "},
|
|
{"tag": [{"subexprPos": "/0/1", "info": {"p": "3"}}, {"text": "x"}]},
|
|
{"text": " "},
|
|
{"tag": [{"subexprPos": "/1", "info": {"p": "4"}}, {"text": "x"}]}]},
|
|
"doc": null}
|
|
Popup for x:
|
|
{"p": "2"}
|
|
{"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "MyNat"}]},
|
|
"exprExplicit": {"text": "x"},
|
|
"doc": null}
|
|
Popup for x:
|
|
{"p": "3"}
|
|
{"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "MyNat"}]},
|
|
"exprExplicit": {"text": "x"},
|
|
"doc": null}
|
|
Popups for type of goal:
|
|
Popup for MyTrue:
|
|
{"p": "4"}
|
|
{"type": {"tag": [{"subexprPos": "/", "info": {"p": "0"}}, {"text": "Prop"}]},
|
|
"exprExplicit": {"text": "MyTrue"},
|
|
"doc": "MyTrue doc "}
|